帮助,我有两个RDD,我想合并到一个RDD。这是我的代码。
val us1 = sc.parallelize(Array(("3L"), ("7L"),("5L"),("2L")))
val us2 = sc.parallelize(Array(("432L"), ("7123L"),("513L"),("1312L")))
只使用联合:
val merged = us1.union(us2)
文档在这里
Scala中的Shotcut是:
val merged = us1 ++ us2
您需要RDD.union
这些不在密钥上。工会实际上并没有做任何事情,所以它的开销低。请注意,合并后的RDD将具有原始RDD的所有分区,因此您可能需要在联盟结束后结合。
val x = sc.parallelize(Seq( (1, 3), (2, 4) ))
val y = sc.parallelize(Seq( (3, 5), (4, 7) ))
val z = x.union(y)
z.collect
res0: Array[(Int, Int)] = Array((1,3), (2,4), (3,5), (4,7))
api
def++(other: RDD[T]): RDD[T]
返回此RDD的联合和另一个。
def api
def union(other: RDD[T]): RDD[T]
返回该RDD的结合和另一个。任何相同的元素都会出现多次(使用.distinct()消除它们)。
DEF UNIOM API