平时用到了以下几个不常用但是却相当强大的hive内置函数,记录在这做个笔记吧,防止忘了。持续更新
sort_array(Array <T>)
将数组元素按照升序排序并返回
explode() 行转列
返回值 | 格式 | 用法 |
---|---|---|
array | explode(array<T> b) | 对于b中的每个元素,将生成一行且包含该元素 |
多行记录 | explode(array<T>) | 每行对应数组中的一个元素 |
多行记录 | explode(map) | 每行对应每个map键值对,其中一个字段是map的键,另一个字段是值 |
collect_list ( t.a[0] )
返回t表中a字段第一个元素组成的可重复数组
collect_set ( t.a[0] )
返回t表中a字段第一个元素组成的不可重复数组
concat_ws ( string SEP,string a,string b... )
作用与concat()类似,将字符串按照次序拼接,但是用指定的分隔符进行分割
posexplode ( array<T> )
作用与参数为数组的explode()方法类似,但包含项在原始数组中的位置,返回( pos,value )的二元组,第一个为位置
lateral view
用来生成用户自定义表以展开的形式map或者array的值,如同explode(),但是会忽略值为null的列,如果要显示这些列,可以用lateral view outer (hive0.12.0之后版本才会有)