我是火花编程新手。需要spark python程序的帮助,在这里我有这样的输入数据,并希望获得每个组的累计摘要。感谢有人在这方面指导我。在
11,1,1100年
11,1,2150年
12,1,1,50
12,2,1,70
12,2,2,20
11,1,1100年
11,1,2250/(100+150)
12,1,1,50
12,2,1,70
12,2,2,90/(70+20)
我尝试的代码:
def parseline(line):
fields = line.split(",")
f1 = float(fields[0])
f2 = float(fields[1])
f3 = float(fields[2])
f4 = float(fields[3])
return (f1, f2, f3, f4)
input = sc.textFile("FIle:///...../a.dat")
line = input.map(parseline)
linesorted = line.sortBy(lambda x: (x[0], x[1], x[2]))
runningpremium = linesorted.map(lambda y: (((y[0], y[1]), y[3])).reduceByKey(lambda accum, num: accum + num)
for i in runningpremium.collect():
print i
使用Dataframe API:
使用RDD API请尝试以下操作:
^{pr2}$输出:
一个简单的例子只涉及两列(每个记录中有2个值)
输出:
在注释中,可以使用window函数对Spark Dataframe进行累计和。首先,我们可以创建一个带有伪列
'a', 'b', 'c', 'd'
的示例数据帧您可以按列
^{pr2}$a
和b
进行分区,然后按列c
排序。然后,将sum
函数应用于末尾的列d
输出
相关问题 更多 >
编程相关推荐