我有一个Hive表"log_data",其中包含列:
"User_Agent">(示例 User_Agent:"Mozilla/5.0(兼容;谷歌机器人/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扩展的类。
- 问题。我不知道如何实现这个逻辑,但我知道如何解析用户代理,我不知道如何处理输入(字符串User_Agent(和输出(操作系统,浏览器和设备的结构(。
当我是对的并且user_agent总是具有相同的结构时,您为什么不使用regexp_extract?
例如
select regexp_extract('Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', '(\S*).*', 1)