如何使用Java为Hive编写UDAF函数

时间:2018-01-05 14:09:43

标签: java hive user-defined-functions user-agent

我有一个Hive表“log_data”,其中包含列:

“User_Agent”(示例User_Agent:“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

在结果中,我应该从每个城市的User_Agent(操作系统,浏览器和设备)获取信息。

具体来说,我应该使用由AbstractGenericUDAFResolver.class扩展的类。

  • 问题即可。我不知道如何实现这个逻辑,但我知道如何解析用户代理,我不知道如何处理输入(String User_Agent)和输出(操作系统,浏览器和设备的结构)。

1 个答案:

答案 0 :(得分:0)

当我是对的并且user_agent总是具有相同的结构时,为什么不使用regexp_extract?

e.g。

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