将每个元素视为元组时在 PySpark 中加入 2 RDD

join 2 RDD in PySpark when treating every element as a tuple

我不知道如何准确描述它,但是示例是:

给出两个RDD:

x = sc.parallelize([("a", 1), ("b", 4)])

y = sc.parallelize([("a", 2), ("c", 8)])

,我想得到结果:

[(("a", 1), ("a", 2)), (("a", 1), ("c", 8)), (("b", 4), ("a", 2)), (("b", 4), ("c", 8))]

PySpark document 中的 join 转换似乎不适用于此示例。

所以我想问一下我可以用什么样的变换来得到预期的结果?谢谢!

阅读 spark document 后,我找到了一种解决方法:

x.cartesian(y)

由于 RDD 有一些模仿 SQL 的操作,SparkContext.union() 不就是您要找的吗?