我有一个Hive表,其数据如下: HIVE表
"分区,id,seq,raw"
xm1, aaa, 3, <end>
xm1, aaa, 2, <middle>
xm1, aab, 1, <begin>
xm1, aaa, 1, <begin>
xm1, aab, 3, <end>
xm1, aab, 2, <middle>
我想要做的是运行一个Select SQL,它将返回&#34;分区,id和[]&#34;基于seq
我以不同的顺序取回收集的集合&#34; xm1,aaa,[]。&#34;
如何使用序列号按顺序获取此信息?我不能在小组中使用序列。
我正在运行如下的SQL语句:
SELECT partition, id, collect_set(raw)
FROM test_rpt_sorted
WHERE id='aaa'
GROUP BY partition, id
答案 0 :(得分:0)
您可以尝试使用sort_array
内置函数对collect_set
的结果执行排序。
SELECT partition, id, sort_array(collect_set(seq))
FROM test_rpt_sorted
WHERE id='aaa'
GROUP BY partition, id;
请注意,根据HIVE-2279,从{Hive 0.9.0开始,sort_array
功能可用(希望您的安装不早于此版本)。