在apache spark中,我的数据框是' category'专栏总是' a'或者' b'。
user_id | category ==================== 1 | a 1 | a 1 | b 2 | a 2 | b 2 | b
我想制作专栏' a'和列' b'为了他们的数量。 我想要的结果如下。
user_id | a | b =============== 1 | 2 | 1 2 | 1 | 2
答案 0 :(得分:2)
您可以使用条件聚合:
SELECT user_id,
COUNT(CASE WHEN category = 'a' THEN 1 END) AS a
COUNT(CASE WHEN category = 'b' THEN 1 END) AS b
FROM mytable
GROUP BY user_id
答案 1 :(得分:1)
这样做无需事先知道a
和b
:
df.groupBy($"id").pivot("category").count().show
答案 2 :(得分:0)
全部谢谢。 为了完整性,我使用了带有列表[' a',' b']的数据透视方法。
df.groupBy($"id").pivot("category", ['a', 'b']).count().show