如何用java编写hive的udaf函数

zte4gxcn  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(341)

我有一个配置单元表“log\u data”,它有以下列:
“用户代理”(示例用户代理:“mozilla/5.0(兼容);googlebot/2.1+http://www.google.com/bot.html))和列城市。
我应该写udaf函数 parsed_user_agent 它的用法如下-

SELECT city, parsed_user_agent(User_Agent) group by city

结果我应该从每个城市的用户代理(操作系统、浏览器和设备)获取信息。
具体来说,我应该使用由abstractgenericudafresolver.class扩展的类。
问题。我不知道如何实现这个逻辑,但我知道如何解析用户代理,也不知道如何处理输入(字符串用户代理)和输出(操作系统、浏览器和设备的结构)。

scyqe7ek

scyqe7ek1#

如果我是对的,而且user\u代理始终具有相同的结构,为什么不使用regexp\u extract呢?
例如

select regexp_extract('Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', '(\\S*).*', 1)

相关问题