Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 在pyspark中合并两个RDD_Apache Spark_Pyspark_Rdd - Fatal编程技术网

Apache spark 在pyspark中合并两个RDD

Apache spark 在pyspark中合并两个RDD,apache-spark,pyspark,rdd,Apache Spark,Pyspark,Rdd,假设我有以下RDD: a=sc.parallelize([1,2,5,3]) b=sc.parallelize(['a','c','d','e']) 如何将这两个RDD组合成一个RDD,如下所示: [('a',1),('c',2),('d',5),('e',3)] 使用a.union(b)只需将它们组合在一个列表中。有什么想法吗?您可能只想b.zip(a)两个RDD(注意顺序相反,因为您想按b的值进行键控) 请仔细阅读以下内容: 拉链(其他) 用另一个RDD压缩此RDD,并用返回键值对 每个

假设我有以下RDD:

a=sc.parallelize([1,2,5,3])
b=sc.parallelize(['a','c','d','e'])
如何将这两个RDD组合成一个RDD,如下所示:

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

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

您可能只想
b.zip(a)
两个RDD(注意顺序相反,因为您想按b的值进行键控)

请仔细阅读以下内容:

拉链(其他)

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


如果您有两个具有不同元素和分区数量的RDD,您将如何做到这一点?取决于用例。有一件事是肯定的——你需要一些你想要加入的密钥。然后,你可以继续进行如reduceByKey或join,如本章所述-
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)]