hive函数分类
- UDF:一进一出
- UDAF:多进一出
- UDTF:一进多出
内置UDF函数
hive> select substring('hello',1,2);
OK
he
hive> select concat_ws('**',split('aaa-bbb-ccc','-'));
OK
aaa**bbb**ccc
hive> select split('aaa-bbb-ccc','-');
OK
["aaa","bbb","ccc"]
hive> select str_to_map('name:jack,age:18');
OK
{"name":"jack","age":"18"}
内置UDTF函数/表生成函数
select explode(split('aaa-bbb-ccc','-'));
hive> select explode(split('aaa-bbb-ccc','-'));
OK
aaa
bbb
ccc
内置UDAF函数/聚合函数
- collect_set 将多行数据转换为数组并去重
hive> select collect_set(name) from stu;
OK
["tom","jack"]
- collect_list 将多行数据转换为数组不会去重
hive> select collect_list(name) from stu;
OK
["tom","tom","tom","jack","jack","jack"]