使用python2的pyspark可以很好地实现以下功能:
data = [
('A', 2.), ('A', 4.), ('A', 9.),
('B', 10.), ('B', 20.),
('Z', 3.), ('Z', 5.), ('Z', 8.), ('Z', 12.)
]
rdd = sc.parallelize( data )
sumCount = rdd.combineByKey(lambda value: (value, 1),
lambda x, value: (x[0] + value, x[1] + 1),
lambda x, y: (x[0] + y[0], x[1] + y[1])
)
averageByKey = sumCount.map(lambda (key, (totalSum, count)): (key, totalSum / count))
averageByKey.collectAsMap()
线路:
averageByKey = sumCount.map(lambda (key, (totalSum, count)): (key, totalSum / count))
python3下的回报:
SyntaxError: invalid syntax
File "<command-2372155099811162>", line 14
averageByKey = sumCount.map(lambda (key, (totalSum, count)): (key, totalSum / count))
找不到是什么python3变化导致了这种情况和替代方案。你知道吗
pyspark中使用python3的以下代码可以工作:
正确返回:
python2和python3有一些不同,python2也有很多不同之处。你知道吗
相关问题 更多 >
编程相关推荐