如何在Hive SQL中按列分配一种列

问题描述

我想在蜂巢中取得这样的结果:

| COL1 | HISTOGRAM             |
+------+-----------------------+
|  a   | {"A":2,"B":2}        |
|  b   | {"C":2,"A":1,"B":1} |

从此表:

| COL1 | COL2 |
+------+------+
| a    | A    |
| a    | B    |
| a    | A    |
| a    | B    |
| b    | A    |
| b    | B    |
| b    | C    |
| b    | C    |

我认为Presto sql可以满足我的要求:

select COL1,histogram(COL2)
from sample_table 
group by COL1 

解决方法

您可以按col1,col2计算计数组,然后使用@firebase/authfirebase/auth将col2:cnt字符串聚合为数组,以逗号作为分隔符将数组连接起来,并使用{{ 1}}。

演示:

collect_set

结果:

collect_list