hive 解析日志常用的几个函数

本文总结了Hive解析日志时常用的几个函数,包括get_json_object用于从JSON字符串中提取数据,regexp_extract结合正则表达式提取特定部分,trim、lower、upper和split进行字符串处理,reflect进行URL解码,以及parse_url的巧妙使用,特别是如何获取URL的查询参数。
摘要由CSDN通过智能技术生成

大家都知道日志的形式偏非结构化,有很多特殊的字符等等,现总结一些日志中常用或者易用到的函数便于日志数据的提取、解析。
1.get_json_object,底层日志经常会被储存为json字符串的形式,如果想获得各个维度的值,往往需要这个函数把对应的值取出来,具体用法为:

get_json_object(action,'$.evt_id') 取出1111027379533
此处假设需要解析的字段叫action,action的值如下:
{
"info_json": 
{
  "a": {
  "b": "300","c": "15000"},
"d": "110000",
"e": "小花",
"f": "小芳"},
" token": "1111027379533"
}
同样如果要取出d所对应的110000这个值,可用嵌套的get_json_object方法
 get_json_object(get_json_object(
'{
"info_json": 
{"a": {"b": "300","c": "15000"},
"d": "110000",
"e": "小花",
"f": "小芳"},
"evt_id": "1111027379533"
}','$.info_json'),'$.d')

需要注意的是,key值不要是中文,要不然hive会报错,而且,key值要用双引号括起来,json串的格式要规范。此外hive核心编程这本书中有提到一个json_tuple这个函数的用法,目前还没有用,先占个坑,回头再补。
2.regexp_extract(),这个函数相信很多博客都有提及,主要和正则表达式一起使用,以提取自己想要的那部分数据.regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp
字符串正则表达式解析函数。
– 这个函数有点类似于 substring(str from ‘regexp’) ..
参数解释:
其中:
str是被解析的字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值