我有2對rdds,我正在做聯合給第三個rdd。 但是生成的rdd有重複的tupes。 rdd 3 = {(1,2),(3,4),(1,2)}在rdd上應用不同的鍵值對,而不僅僅是基於鍵
我想從rdd3中刪除重複的元組,但只有當這兩個元組的鍵值對是相同的。 我該怎麼做?
我有2對rdds,我正在做聯合給第三個rdd。 但是生成的rdd有重複的tupes。 rdd 3 = {(1,2),(3,4),(1,2)}在rdd上應用不同的鍵值對,而不僅僅是基於鍵
我想從rdd3中刪除重複的元組,但只有當這兩個元組的鍵值對是相同的。 我該怎麼做?
請直接調用火花斯卡拉LIB API:
def distinct(): RDD[T]
請記住,這是一個類型參數的通用方法。
如果使用RDD類型的RDD [(Int,Int)]調用它,它會在您的rdd中爲您提供不同的類型對(Int,Int),就像它一樣。
如果你想看到這個方法的內部。請參閱下面的簽名:
def distinct(numPartitions: Int)(implicit ord: Ordering[T] = null): RDD[T] = withScope {
map(x => (x, null)).reduceByKey((x, y) => x, numPartitions).map(_._1)
}
您可以使用不同的例如
val data= sc.parallelize(
Seq(
("Foo","41","US","3"),
("Foo","39","UK","1"),
("Bar","57","CA","2"),
("Bar","72","CA","2"),
("Baz","22","US","6"),
("Baz","36","US","6"),
("Baz","36","US","6")
)
)
刪除重複:
val distinctData = data.distinct()
distinctData.collect
'rdd3.distinct()'。 – Psidom