Spark Dataframe reducebykey之类的操作
技术问答
228 人阅读
|
0 人回复
|
2023-09-14
|
我有一个包含以下数据的人Spark数据帧(我用的spark-csv加载数据:$ A3 I. C' u2 \8 _
key,value1,102,123,01,20有什么相似之处?spark RDD的东西reduceByKey可以返回一个Spark DataFrame如下基本上,同一键值的和谐)+ j2 o# r' `& s
key,value1,302,123,0(我可以将数据转换为RDD并进行reduceByKey但是操作还是比较多的Spark DataFrame API能做到这一点吗?. t' R. V3 y' z5 }
" `( u5 }- a: s/ ~5 o) W 解决方案: ( D7 D( [5 u+ H, J" |, A8 k
如果不关心列名,可以用groupBy后跟sum:. m; I! D8 T* o( _& v* g8 d6 ^
df.groupBy($"key").sum("value")否则最好更换sum为agg:
. m9 Q9 r" A F* fdf.groupBy($"key").agg(sum($"value").alias("value"))最后,你可以使用原始SQL:8 [: S f) }. e4 T2 r' `2 q: F
df.registerTempTable("df")sqlContext.sql("SELECT key,SUM(value) AS value FROM df GROUP BY key") |
|
|
|
|
|