scala - 根据一个 RDD 中的键过滤另一个 RDD

标签 scala filter apache-spark

我有两个 RDD:

**rdd1**
id1 val1
id2 val2

**rdd2**
id1 v1
id2 v2
id1 v3
id8 v7
id1 v4
id3 v5
id6 v6

我想过滤 RDD2,使其仅包含 rdd1 的键。所以输出将是

**output**
id1 v1
id2 v2
id1 v3
id1 v4

以前在 stackoverflow 中曾问过这个问题,但对于较小的数据集,人们在其中广播设置然后用于过滤,但我的问题是 rdd1 大小 > 5 亿,而 rdd2 超过 100 亿

请帮忙

最佳答案

使用连接:

val res: RDD[(Long, V)] = rdd1.join(rdd2)
                              .map { case(k, (_, v2)) => (k, v2) }

关于scala - 根据一个 RDD 中的键过滤另一个 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866041/

相关文章:

Scala和Spark UDF功能

javascript - lodash _.filter 用于可选地基于数组的条件?

c++ - 用于滤波器设计的 remez 交换算法的实现

python - word2vec的余弦相似度大于1

类似 scala 比较器的序列函数

scala - 使用带有隐含的特征的案例类中的类型参数

scala - 用Filter代替过滤器

Django:list_filter 和外键字段

python - 在 PySpark 中将 isodate 字符串转换为日期格式

apache-spark - 如何在 DataFrame Spark 1.6 中加载特定的 Hive 分区?