Spark Dataframe reducebykey之类的操作

我有一个包含以下数据的Spark数据帧(我使用spark-csv加载数据):

key,value

1,10

2,12

3,0

1,20

有什么类似于spark RDD的东西reduceByKey可以返回一个Spark DataFrame如下:(基本上,对相同的键值求和)

key,value

1,30

2,12

3,0

(我可以将数据转换为RDD并进行reduceByKey操作,但是还有更多的Spark DataFrame API方式可以做到这一点吗?)

回答:

如果你不关心列名,你可以使用groupBy后跟sum

df.groupBy($"key").sum("value")

否则最好替换sumagg

df.groupBy($"key").agg(sum($"value").alias("value"))

最后,您可以使用原始SQL:

df.registerTempTable("df")

sqlContext.sql("SELECT key, SUM(value) AS value FROM df GROUP BY key")

以上是 Spark Dataframe reducebykey之类的操作 的全部内容, 来源链接: utcz.com/qa/409552.html

回到顶部