回答

收藏

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")
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则