scala - 两个 RDD 的元素并集

标签 scala apache-spark union rdd

我想在 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 联合起来得到

{(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/

相关文章:

sql - 错误: missing FROM-clause entry for table "p"

c# - Marshall 在 c# 中使用 ifdef 和联合构造结构

scala - 实现某个类型类的类列表

scala - 加特林以响应主体为条件

scala - Spark /斯卡拉 : Passing RDD to Function

apache-spark - 如何在 Zeppelin 上的 Apache Spark 中停止 StreamingContext

scala - Dataframe groupBy,根据聚合函数的结果得到相应的行值

scala - 我们是否应该像在训练前并行化 Seq 一样并行化 DataFrame

apache-spark - 从 Databricks 中的 UDF 内部查询 Delta Lake

mysql联合限制问题