【发布时间】:2018-01-28 02:51:06
【问题描述】:
我的数据由多列组成,看起来像这样:
我想分别对每一列的数据进行分组并计算每个元素的出现次数,我可以这样做:
df.groupBy("Col-1").count()
df.groupBy("Col-2").count()
df.groupBy("Col-n").count()
但是,如果有 1000 列,我会很耗时。所以我试图找到另一种方法:
目前我所做的事情:
def mapFxn1(x):
vals=[1] * len(x)
c=tuple(zip(list(x), vals))
return c
df_map=df.rdd.map(lambda x: mapFxn1(x))
mapFxn1 获取每一行并将其转换为元组的元组:所以基本上第一行看起来像这样:((10, 1), (2, 1), (x, 1))
我只是想知道如何在 df_map 上使用 reduceByKey 和 lambda x,y: x + y 来实现对每一列的分组并在单个步骤中计算每一列中元素的出现次数。
提前谢谢你
【问题讨论】:
标签: apache-spark pyspark