如何在hive中使用collec_set为null生成0
我们需要收集所有不同横断面的值并显示在“|”中分隔并显示 0 表示不可用的商家。
table_1
col1 | col2 | col3 |
---|---|---|
129867 | paytm | 4 |
18945 | paytm | 5 |
129867 | payzap | 6 |
18945 | payzap | 4 |
456312 | paytm | 3 |
我们需要读取 table1 并将其转换为 tabl2,如下所示:
table_2
col1 | col2 |
---|---|
129857 | 4l6 |
18945 | 5l4 |
456312 | 3l0 |
假设我们有两个商家,即 paytm 和 payzap,如何实现这一点蜂巢。
我已经尝试过:
SELECT col1,
Nvl(Concat_ws('|', Collect_set(col3)), 0) AS col2
FROM table_1
GROUP BY col1;
但我没有得到想要的结果。
We have requirement to collect the values for all the different transection and display in "|" delimited and display 0 for the not available merchant.
table_1
col1 | col2 | col3 |
---|---|---|
129867 | paytm | 4 |
18945 | paytm | 5 |
129867 | payzap | 6 |
18945 | payzap | 4 |
456312 | paytm | 3 |
we need to read the table1 and transform it into tabl2 as given below:
table_2
col1 | col2 |
---|---|
129857 | 4l6 |
18945 | 5l4 |
456312 | 3l0 |
suppose we have two merchant i.e paytm and payzap, how to achieve this in hive.
I have tried like:
SELECT col1,
Nvl(Concat_ws('|', Collect_set(col3)), 0) AS col2
FROM table_1
GROUP BY col1;
but I am not getting desired result.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用 sql server,则使用
string_agg
在 Hivesql 中我已经为您提供了语法
If you using sql server then use
string_agg
In Hivesql I have provided you with syntax