HIVE常用UDF

这篇文章用来记录自己用过的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’)

你可能感兴趣的:(hive)