2017-02-17 62 views
0

原點數據掉落重複爲每個分區

cls, id 
---- 
a, 1 
a, 1 
---- 
b, 3 
b, 3 
b, 4 

預期輸出

cls, id 
---- 
a, 1 
---- 
b, 3 
b, 4 

ID可以是僅在相同的cls重複的,這意味着相同的id跨clses不存在。

在這種情況下。

df.dropDuplicates($id) 

將在所有分區中進行混洗以檢查cls上的重複項。並將其重新分區爲200(默認值)

現在,如何分別運行每個分區的dropDuplicates以降低計算成本?

+0

你可以把除外輸出此輸入問題 –

+0

請看看我加入到這個問題。預期數據更新。 –

+0

如果你只有這兩個值,那麼你可以嘗試'distinct()'方法 –

回答

0

你可能這樣的事情後:

val distinct = df.mapPartitions(it => { 
    val set = Set(); 
    while (it.hasNext) { 
     set += it.next() 
    } 
    return set.iterator 
});