當寫斯卡拉火花的代碼,如果我想補充在一起的兩個集合,我可以簡單的寫最簡潔的方式來增加2一起集合在Java中的火花
myRdd.reduceByKey(_ ++ _)
如果我想這樣做在Java中一樣,然而,我必須做
myPairRdd.reduceBykey((s1, s2) -> {
s1.addAll(s2);
return s1;
}
我想知道是否有更簡潔的方式來編寫Java代碼。
當寫斯卡拉火花的代碼,如果我想補充在一起的兩個集合,我可以簡單的寫最簡潔的方式來增加2一起集合在Java中的火花
myRdd.reduceByKey(_ ++ _)
如果我想這樣做在Java中一樣,然而,我必須做
myPairRdd.reduceBykey((s1, s2) -> {
s1.addAll(s2);
return s1;
}
我想知道是否有更簡潔的方式來編寫Java代碼。
如果你試圖讓每個鍵的列表,請考慮以下幾點:
pairRDD.groupByKey().mapValues(_.toList)
你應該避免使用groupByKey。另外,我的價值觀已經以集合的形式出現;我想知道是否有一種更簡潔的方式來組合它們。 – alexgbelov
@alexgbelov實際上'groupByKey'在這裏是一個最佳方法(如果Daniel用'_.flatten'代替'_.toList')。只是不簡潔的Java。 – zero323
爲什麼? reduceByKey通常更快。另外,我不想將我的值轉換爲列表;我試圖找到合併兩個列表的單行方式。 – alexgbelov
只是注意 - 你通常不應該使用'.reduceByKey(_ _ +)' – zero323
真的嗎?我從來沒有聽說過這個。你能否詳細說明一下? – alexgbelov
這只是相當難看的表現。 – zero323