列Python的Spark求和

2024-10-03 21:36:08 发布

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

所以我有一个数据集,我要做的是从数据集中取出一个列,而不是将它映射到键值对。问题是我无法计算出我的价值:

position = 1
myData = dataSplit.map(lambda arr: (arr[position]))
print myData.take(10)
myData2 = myData.map(lambda line: line.split(',')).map(lambda fields: (“Column", fields[0])).groupByKey().map(lambda (Column, values): (Column, sum(float(values))))
print myData2.take(10)

这将打印出以下内容:

^{pr2}$

所以当我把它改成:

myData2 = myData.map(lambda line: line.split(',')).map(lambda fields: (“Column", fields[0])).groupByKey().map(lambda (Column, values): (values))

我看到了以下几点:

[<pyspark.resultiterable.ResultIterable object at 0x7fab6c43f1d0>]

如果我只是:

myData2 = myData.map(lambda line: line.split(',')).map(lambda fields: (“Column", fields[0]))

我明白了:

[('Column', u'18964'), ('Column', u'18951'), ('Column', u'18950'), ('Column', u'18949'), ('Column', u'18960'), ('Column', u'18958'), ('Column', u'18956'), ('Column', u'19056'), ('Column', u'18948'), ('Column', u'18969’)]

有什么建议吗?在


Tags: 数据lambdamapfieldslinepositioncolumnsplit
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:08

已解决:

myData2 = myData.map(lambda line: line.split(',')).map(lambda fields: ("Column", float(fields[0]))).groupByKey().map(lambda (Column, values): (Column, sum(values)))

相关问题 更多 >