【问题标题】:Combine two RDDs in pyspark在 pyspark 中合并两个 RDD
【发布时间】:2016-01-29 13:21:22
【问题描述】:

假设我有以下 RDD:

a = sc.parallelize([1, 2, 5, 3])
b = sc.parallelize(['a','c','d','e'])

如何将这 2 个 RDD 合并为一个 RDD,如下所示:

[('a', 1), ('c', 2), ('d', 5), ('e', 3)]

使用a.union(b) 只是将它们组合在一个列表中。有什么想法吗?

【问题讨论】:

    标签: apache-spark pyspark rdd


    【解决方案1】:

    您可能只想 b.zip(a) 两个 RDD(注意颠倒的顺序,因为您想按 b 的值作为键)。

    请仔细阅读python docs

    zip(其他)

    用另一个 RDD 压缩这个 RDD,返回键值对 每个 RDD 中的第一个元素 每个 RDD 中的第二个元素,等等。假设 两个 RDD 具有相同的分区数和相同的 每个分区中的元素数量(例如,一个是通过地图制作的 另一方面)。

    x = sc.parallelize(range(0,5))
    y = sc.parallelize(range(1000, 1005))
    x.zip(y).collect()
    [(0, 1000), (1, 1001), (2, 1002), (3, 1003), (4, 1004)]
    

    【讨论】:

    猜你喜欢
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2020-02-28
    相关资源
    最近更新 更多