我在Hive(SQL)中遇到了大数据问题。
SELECT genre, COUNT(*) AS unique_count
FROM table_name
GROUP BY genre
给出的结果如下:
genre | unique_count
----------------------------------
Romance,Crime,Drama,Law | 1560
Crime,Drama,Law,Romance | 895
Law,Romance,Crime,Drama | 942
Adventure,Action | 3250
Action,Adventure | 910
我想要的是对流派ASC | DESC中的元素进行排序并得到像
这样的结果genre | unique_count
----------------------------------
Crime,Drama,Law,Romance | 3397
Action,Adventure | 4160
我可以在Python中执行此操作,但我有超过200 Million
行的数据。我不知道有什么合理的方法可以移动这些数据。
那我怎么能实现这个呢?
答案 0 :(得分:5)
select concat_ws(',',sort_array(split(genre,','))) as genre
,count(*) as unique_count
from table_name
group by concat_ws(',',sort_array(split(genre,',')))