我有50个带有浮点值(50*7)的数组。我应该如何将同一索引上的50个数组相加为一个具有PySpark映射约简函数的数组。
示例:
array1 = {1,2,3,4,5,6,7}
array2 = {3,4,2,3,5,6,7}
....结果应该是array3 = {4,6,5,7,10,12,14}。
这是在地图还原平台上使用PySpark的一个项目要求.
现在我可以找出地图的部分:
NUM_SAMPLES = 50
result = sc.parallelize(xrange(0, NUM_SAMPLES)).map(random_generation)这里的结果包含50个数组。函数random_generation给出了一个具有7个随机数的数组。
请任何人向我提供关于减缩部分的建议。
发布于 2016-10-08 04:16:46
编辑:我认为使用DataFrame更容易。
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.getOrCreate()
arrays = [
[1,2,3,4,5,6,7],
[3,4,2,3,5,6,7],
[1,2,3,4,5,6,7],
]
df = spark.createDataFrame(arrays)
s = df.groupBy().sum().collect()
print s
print list(s[0])结果
[Row(sum(_1)=5, sum(_2)=8, sum(_3)=8, sum(_4)=11, sum(_5)=15, sum(_6)=18, sum(_7)=21)]
[5, 8, 8, 11, 15, 18, 21]https://stackoverflow.com/questions/39926603
复制相似问题