Hive自定义函数的使用——useragent解析

在Hive中,面对无法直接解析的日志UserAgent数据,通过创建UDF来处理。使用useragentutils.jar解析UserAgent,但由于Hadoop和Hive不支持直接引用第三方库,需要导入源码。UDF示例展示了如何打印操作系统和浏览器版本信息,但不适合统计分析。为了解决这个问题,可以采用UDTF(User Defined Table Generating Function),将一行数据转化为多列,以进行进一步的统计分析。
摘要由CSDN通过智能技术生成

想要从日志数据中分析一下操作系统、浏览器、版本使用情况,但是hive中的函数不能直接解析useragent,于是可以写一个UDF来解析。useragent用于表示用户的当前操作系统,浏览器版本信息,形如:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 180.173.196.29

其中解析ua可以用一个开源的工具包,叫做useragentutils.jar来处理,但是不能直接引入这个包,因为hadoop和hive都不支持直接引用第三方的包,要导入源码。项目结构应该如下图


下面的代码用来打印出操作系统、浏览器版本信息:

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

import eu.bitwalker.useragentutils.UserAgent;

public class ParseUserAgent_UDF extends UDF{
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值