【发布时间】:2020-05-08 15:43:30
【问题描述】:
我有一个 PySpark 数据框,其中 1 列由字符串列表组成。我想计算所有行中每个字符串列表中每个元素的实例数。伪代码:
counter = Counter()
for attr_list in df['attr_list']:
counter.update(attr_list)
另一种方法是连接所有行中的所有列表,并从单个巨大列表中构建一个计数器。在 PySpark 中是否有有效的方法来做到这一点?
正确的输出将是单个 collections.Counter() 对象,其中填充了所有列中所有列表中每个项目的出现次数,即,如果对于给定列,第 1 行有列表 ['a', 'b', 'c'],第 2 行有列表['b', 'c', 'd'],我们会得到一个看起来像{'a': 1, 'b': 2, 'c': 2, 'd': 1}的计数器。
【问题讨论】:
-
你的 spark 版本是什么?
-
这能回答你的问题吗? Get the size/length of an array column
标签: python apache-spark pyspark counter