Spark:Key-Value对和Key RDD之间的交集

时间:2018-04-20 14:08:50

标签: scala apache-spark

我有两个RDD; rdd1 = RDD[(String, Array[String])]rdd2 = RDD[String]。 我想删除所有在rdd2中找不到密钥的rdd1。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以进行内连接,但首先必须使第二个RDD成为对rdd。

val rdd1: RDD[(String, Array[String])] = ???
val rdd2: RDD[String] = ???
val asPairRdd: RDD[(String, Unit)] = rdd2.map(s => (s, ()))
val res: RDD[(String, Array[String])] = rdd1.join(asPairRdd).map{
   case (k, (v, dummy)) => (k, v)
}