Spark table transformation (ERROR: 5063)

Spark table transformation (ERROR: 5063)

我有以下数据:

val RDDApp = sc.parallelize(List("A", "B", "C"))
val RDDUser = sc.parallelize(List(1, 2, 3))
val RDDInstalled =  sc.parallelize(List((1, "A"), (1, "B"), (2, "B"), (2,  "C"), (3, "A"))).groupByKey
val RDDCart = RDDUser.cartesian(RDDApp)

我想映射此数据,以便我有一个元组的 RDD(userId,如果为用户提供了字母,则为布尔值)。我以为我找到了解决方案:

val results = RDDCart.map (entry =>
   (entry._1, RDDInstalled.lookup(entry._1).contains(entry._2))
)

如果我调用 results.first,我会得到 org.apache.spark.SparkException: SPARK-5063。我看到映射函数中的操作有问题,但不知道如何解决它才能得到相同的结果。

只是 joinmapValues:

RDDCart.join(RDDInstalled).mapValues{case (x, xs) => xs.toSeq.contains(x)}