【问题标题】:Spark rdd1 and rdd2 do inner join, new value is the value in rdd1Spark rdd1 和 rdd2 做内连接,新值是 rdd1 中的值
【发布时间】:2016-11-17 22:37:16
【问题描述】:

我有两个 RDD rdd1rdd2

rdd1 = [(key1,value11), (key2,value12)]
rdd2 = [(key1, value21), (key3, value22)]

现在我将使用 rdd1rdd2 进行内部连接,并提供这样的示例结果

rdd_join = [(key1,value11)]

在 sql 中会是这样的

SELECT rdd1.key,rdd1.value 
FROM rdd1
INNER JOIN rdd2
WHERE rdd1.key = rdd2.key

有什么想法吗?

【问题讨论】:

  • 如果你从你的 RDD 创建数据帧,你可以简单地做val joined = df1.join(df2, $"df1Key" === $"df2Key", "inner")

标签: python apache-spark mapreduce hdfs rdd


【解决方案1】:
joined_rdd = rdd1.join(rdd2)

但这不会给你你真正想要的,但是

[joined_rdd = [(key1, (value11, value21))]

您上面的示例不是连接。您可以通过joined_rdd.map(lambda l: [l[0], l[1][0]]) 或使用过滤器而不是首先从连接数据中获取您想要的内容

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 2018-03-03
    • 2017-04-26
    • 2017-03-14
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2017-10-22
    相关资源
    最近更新 更多