Spark.stdev()Python问题

2024-10-03 21:31:53 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着做一些统计分析,我做的sum和stdev有点不同。在

Sum可以这样工作:

stats[0] = myData2.map(lambda (Column, values): (sum(values))).collect()

Stdev格式不同,无法正常工作:

^{pr2}$

我得到以下错误:

TypeError: unsupported operand type(s) for -: 'ResultIterable' and 'float'

Tags: lambdamap格式stats错误columncollectvalues
1条回答
网友
1楼 · 发布于 2024-10-03 21:31:53

首次解决方案使用NumPy

data=[(1,[1,2,3,4,5]),(2,[6,7,8,9]),(3,[1,3,5,7])]
dataRdd = sc.parallelize(data)
import numpy
dataRdd.mapValues(lambda values: numpy.std(values)).collect()
# Result
# [(1, 1.4142135623730951), (2, 1.1180339887498949), (3, 2.2360679774997898)]

第二个解决方案DIY和做它更分散

^{pr2}$

相关问题 更多 >