我有2列spark scalaDataframe。第一个是一个变量,第二个是一个字母数组。我要做的是找到一种方法来编码数组中变量的计数(不使用for循环)。
例如,这就是我所拥有的(很抱歉它没有那么整洁,这是我的第一篇文章)。你有5台电脑,每个人用一个字母代表。我想找出一个人(a、b、c、d、e)用过多少台电脑的方法。
+-----------------+--------------+
| id | [person] |
+-----------------+--------------+
| Computer 1 | [A,B,C,D] |
| Computer 2 | [A,B] |
| Computer 3 | [A,B,E] |
| Computer 4 | [A,C,D] |
| Computer 5 | [A,B,C,D,E] |
+-----------------+--------------+
我想编写代码或询问是否有人有解决方案的方法如下:
+---------+-----------+
| Person | [Count] |
+---------+-----------+
| A | 5 |
| B | 4 |
| C | 3 |
| D | 3 |
| E | 2 |
+---------+-----------+
以某种方式计算Dataframe中数组中的人员。
1条答案
按热度按时间qpgpyjmq1#
有一个函数叫做
explode
将数组展开为每项的一行:然后你可以按人分组并计数。比如: