我有一个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扩展的类。
答案 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)