にフィールドの重複レコードを検索し、 "名前"、2016年、 "国" 11、 "NAME1"、2016年、 "COUNTRY1" 10、 "名前"、2016年、 "国" 10は、 "名前"、2016年には、 "国" 12は、 "Name2は"、2017年には、 "COUNTRY2"スパークは、私は、データが 10のように設定しているRDD
私の問題文は私が年によってカウントの合計数と重複を見つけなければならないです。私の結果は(年、総記録、重複)になるはずです 2016,4,3 2017,1,0。
私はそれが10ギガバイトのデータ件まで罰金を実行している
val records = rdd.map {
x =>
val array = x.split(",")
(array(2),x)
}.groupByKey()
val duplicates = records.map {
x => val totalcount = x._2.size
val duplicates = // find duplicates in iterator
(x._1,totalcount,duplicates)
}
ことによって、この問題を解決しようとしてきました。私がそれをもっと多くのデータで実行した場合、それは長い時間がかかります。私はgroupByKeyが最善の方法ではないことに気付きました。
この問題を解決するには、最善の方法を提案してください。