【问题标题】:Filter one RDD based on keys in another根据另一个 RDD 中的键过滤一个 RDD
【发布时间】:2015-08-07 05:31:43
【问题描述】:

我有两个 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亿

请帮忙

【问题讨论】:

    标签: scala filter apache-spark


    【解决方案1】:

    使用连接:

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

    【讨论】:

      猜你喜欢
      • 2017-06-17
      • 2017-08-19
      • 2016-12-16
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多