Apache spark Pyspark:求和列值

Apache spark Pyspark:求和列值,apache-spark,pyspark,rdd,Apache Spark,Pyspark,Rdd,我有这个RDD(显示两个元素): 我想根据索引在列表中添加元素,以便 最终结果 [4, 2] 我将如何实现这一点?我知道第一个元素('a'/'b')的存在是不相关的,因为我可以用映射将其去掉,所以问题变成如何求列值的和。您可以按照您所说的去掉键,然后按如下方式减少RDD(假设您有两列): 这将为您提供所有列的总和您可以按照您所说的剥离键,然后按如下方式减少RDD(假设您有2列): $ pyspark >>> x = [['a', [1, 2]], ['b', [3, 0]]]

我有这个RDD(显示两个元素):

我想根据索引在列表中添加元素,以便 最终结果

[4, 2]

我将如何实现这一点?我知道第一个元素('a'/'b')的存在是不相关的,因为我可以用映射将其去掉,所以问题变成如何求列值的和。

您可以按照您所说的去掉键,然后按如下方式减少RDD(假设您有两列):


这将为您提供所有列的总和

您可以按照您所说的剥离键,然后按如下方式减少RDD(假设您有2列):

$ pyspark
>>> x = [['a', [1, 2]], ['b', [3, 0]]]
>>> rdd = sc.parallelize(x)
>>> rdd.map(lambda x: x[1]).reduce(lambda x,y: [sum(i) for i in zip(x, y)])
这将为您提供所有列的总和

$ pyspark
>>> x = [['a', [1, 2]], ['b', [3, 0]]]
>>> rdd = sc.parallelize(x)
>>> rdd.map(lambda x: x[1]).reduce(lambda x,y: [sum(i) for i in zip(x, y)])
$ pyspark
>>> x = [['a', [1, 2]], ['b', [3, 0]]]
>>> rdd = sc.parallelize(x)
>>> rdd.map(lambda x: x[1]).reduce(lambda x,y: [sum(i) for i in zip(x, y)])