我想在 scala 中对两个 RDD 进行并集。我无法将它们存储在内存中,因为它们非常大。
A = {k1->List(A,B,C), k2->List(W,E,Q)}
B = {k1->List(D,E,F), k2->List(E,U,O)}
如何将 A 和 B 联合起来得到 p>
{(A,B,C,D,E,F),(W,E,Q,U,O)}
谢谢, 南希
最佳答案
据我所知,您只需要加入
:
val a = sc.parallelize(Seq(
("k1" -> List("A", "B" , "C")), ("k2" -> List("W", "E", "Q"))))
val b = sc.parallelize(Seq(
("k1" -> List("D", "E", "F")), ("k2" -> List("E", "U", "O"))))
val combined = a.join(b) // Join by key
.values // drop keys
.map{case (x, y) => x ++ y} // Combine elements
关于scala - 两个 RDD 的元素并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291991/