这篇文章用来记录自己用过的hiveUDF和使用方法,将来也会陆续一直更新。
数据格式
get_json_object()
遇到以json形式储存的数据时可以用get_json_object() 来获取json中某一个值
- 具体示例: get_json_object(value,’$.id’)
collect_set()
collect_set() 可以用来形成不包含duplicates的array,如果要包含duplicates的话用collect_list()
- 具体示例: collect_set(id)
concat_ws()
concat_ws() 可以把array或者多个string整合成用指定delimiter的一条string
- 具体示例: concat_ws(array)
- 进阶用法: 可以与collect_set() 结合使用
- 计算累计的distinct id: concat_ws(’,’,collect_set(t_id)) as id_set
explode()
explode() 可以把一个array或者map转换成多行的一列数据
- 进阶用法: 与上文的concat_ws(), collect_set() 结合使用
- 计算累计的uv: LATERAL VIEW explode(split(id_set,","))
时间相关
add_month()
add_month() 可以增减月份,计算一年数据时可以直接算到去年同天数,不用考虑一年有多少天
- 具体示例: add_month(current_date(),-12)
unix_timestamp()
unix_timestamp()可以根据给定pattern转化时间数据的格式
- 具体示例: unix_timestamp(current_date(), ‘yyyyMMdd’)