将每个元素视为元组时,在 PySpark 中加入 2 个 RDD
Posted
技术标签:
【中文标题】将每个元素视为元组时,在 PySpark 中加入 2 个 RDD【英文标题】:join 2 RDD in PySpark when treating every element as a tuple 【发布时间】:2015-06-22 03:24:42 【问题描述】:我不知道如何准确地描述它,但例子是:
给出两个 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
转换似乎不适用于此示例。
所以我想问一下我可以使用什么样的转换来获得预期的结果?谢谢!
【问题讨论】:
这篇文章没有直接回答你的问题,但它可能会有所帮助。按照赵振杰的回答——笛卡尔:link 【参考方案1】:阅读spark document后,我发现一种方法是:
x.cartesian(y)
【讨论】:
【参考方案2】:由于 RDD 有一些模仿 SQL 的操作,SparkContext.union() 不是您要找的吗?
【讨论】:
以上是关于将每个元素视为元组时,在 PySpark 中加入 2 个 RDD的主要内容,如果未能解决你的问题,请参考以下文章