Hive学习之路(五):使用自义定函数UDF完成日志数据统计

一、Hive自定义函数UDF简介

上一节中,介绍了许多Hive的内置函数,并使用Hive的内置函数实现了WordCount,Hive的内置函数确实为编程带来了极大的便捷,但是,如果遇到过于复杂的业务时,Hive的内置函数会显得乏力,再者,在ETL处理中,一个处理过程可能包含多个处理步骤,而每个步骤都涉及到较为复杂的数据处理,如果用户无法自定义函数处理,则会大大增加业务的复杂程度。因此,Hive提供了用户自定义函数UDF,是一个允许用户扩展HiveSQL的强大的功能,用户可以自己编写一个函数,并将其加入到用户会话中,它就会像Hive的内置函数一样使用。

二、数据准备

1.分析日志数据

27.19.74.143 - - [29/April/2016:17:38:20 +0800] “GET /static/image/common/faq.gif HTTP/1.1” 200 1127
110.52.250.126 - - [29/April/2016:17:38:20 +0800] “GET /data/cache/style_1_widthauto.css?y7a HTTP/1.1” 200 1292
27.19.74.143 - - [29/April/2016:17:38:20 +0800] “GET /static/image/common/hot_1.gif HTTP/1.1” 200 680

以上是apache服务器部分的日志信息,也是本次演示所用到的数据,一共七个字段,分别表示:“host”,“identity”,“user”,“time”,“request”,
“status”,“size”。

2.需求

现在需要对这批原始数据做一次过滤,要求对于size大于1000的访问日志,取出IP,格式化时间,以及访问url。比如 27.19.74.143 - - [29/April/2016:17:38:20 +0800] “GET /static/image/common/faq.gif HTTP/1.1” 200 1127 size = 1127大于1000符合要求,输出结果:27.19.74.143 2016-04-29 /static/image/common/faq.gif

3.创建原始数据表并导入数据

进入hive shell,执行命令:create table logtable(log string),创建原始数据表,log字段代表一条日志。先将下面日志文件laog.txt的内容上传至HDFS,然后执行命令:load data inpath '/data/log.txt' into table logtable,将日志数据导入表中。
laog.txt

27.19.74.143 - - [29/April/2016:17:38:20 +0800] "GET /static/image/common/faq.gif HTTP/1.1" 200 1127
110.52.250.126 - - [29/April/2016:17:38:20 +0800] "GET /data/cache/style_1_widthauto.css?y7a HTTP/1.1" 200 1292
27.19.74.143 - - [29/April/2016:17:38:20 +0800] "GET /static/image/common/hot_1.gif HTTP/1.1" 200 680
27.19.74.143 - - [29/April/2016:17:38:20 +0800] "GET /static/image/common/hot_2.gif HTTP/1.1" 200 682
27.19.74.143 - - [29/April/2016:17:38:20 +0800] "GET /static/image/filetype/common.gif HTTP/1.1" 200 90
110.52.250.126 - 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值