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’)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值