为何没有 collect_list 函数?


#1

想对 Inceptor 中表的某些字段做词频统计
把这些列的数据使用逗号拼接好
然后丢到 ES 里

查询语句如下
select concat_ws(’,’, collect_set(字段1), collect_set(字段2)) as text from 某表;
查询使用了 collect_set 函数
会将 字段1、字段2 里面的数据去重

从网上搜索 hive 支持 collect_list 函数
但是在 Inceptor 里执行时报错如下
pyhs2.error.Pyhs2Exception: “COMPILE FAILED: Semantic error: [Error 10011] Line 1:22 Invalid function ‘collect_list’”

使用的 TDH 版本为 4.6
请问有什么替代方案吗?


#2

hive原生也只有一个collect_set内置函数,返回去重后的元素数组,collect_list 需要UDF实现,可以参考下这个帖子:
http://blog.csdn.net/desilting/article/details/45505121


在线客服
在线客服
微信客服
微信客服