Spark Dataframe reducebykey之类的操作
我有一个包含以下数据的Spark数据帧(我使用spark-csv加载数据):
key,value1,10
2,12
3,0
1,20
有什么类似于spark RDD的东西reduceByKey
可以返回一个Spark DataFrame如下:(基本上,对相同的键值求和)
key,value1,30
2,12
3,0
(我可以将数据转换为RDD并进行reduceByKey
操作,但是还有更多的Spark DataFrame API方式可以做到这一点吗?)
回答:
如果你不关心列名,你可以使用groupBy
后跟sum
:
df.groupBy($"key").sum("value")
否则最好替换sum
为agg
:
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