Car*_*Pun 8 sql scala apache-spark apache-spark-sql
我有一个带有以下数据的Spark数据帧(我使用spark-csv来加载数据):
key,value
1,10
2,12
3,0
1,20
Run Code Online (Sandbox Code Playgroud)
有什么类似于spark RDD reduceByKey可以返回Spark DataFrame :(基本上,总结相同的键值)
key,value
1,30
2,12
3,0
Run Code Online (Sandbox Code Playgroud)
(我可以将数据转换为RDD并执行reduceByKey操作,但是有更多Spark DataFrame API方法可以执行此操作吗?)
zer*_*323 18
如果您不关心列名,可以使用groupBy后跟sum:
df.groupBy($"key").sum("value")
Run Code Online (Sandbox Code Playgroud)
否则最好更换sum为agg:
df.groupBy($"key").agg(sum($"value").alias("value"))
Run Code Online (Sandbox Code Playgroud)
最后你可以使用原始SQL:
df.registerTempTable("df")
sqlContext.sql("SELECT key, SUM(value) AS value FROM df GROUP BY key")
Run Code Online (Sandbox Code Playgroud)
另请参见DataFrame/Dataset groupBy行为/优化
| 归档时间: |
|
| 查看次数: |
19380 次 |
| 最近记录: |