我想找出col1和col2中每个不同值的总出现次数
col1 col2
a a
a c
结果
Id count
a 3
c 1
如果这是sql,我会这样做
select id, sum(count) from ( Select col1 as id, count(*) as count from table group by col1 union all Select col2 as id, count(*) as count from table group by col2) group by id
我是新来的。我需要帮助来找到一个有效的方法。
2条答案
按热度按时间fcg9iug31#
可以对包含两列的数组使用explode函数,如下所示:
将打印:
此解决方案防止spark计算两倍于输入Dataframe的值
v9tzhpje2#
你可以简单地
union
col1
以及col2
作为一个新的id
列,然后按其分组:打印内容: