加入两个产生空数据的 RDD
Posted
技术标签:
【中文标题】加入两个产生空数据的 RDD【英文标题】:Join two RDDs producing empty data 【发布时间】:2018-10-21 14:50:40 【问题描述】:我有两个 RDD 表,part 和 parts。
它们有一个共同的列,“joinKey”。我尝试使用以下代码加入这两个表:
part = sc.textFile("/data/tpch/data-001/part/")
parts = sc.textFile("/data/tpch/data-001/parts/")
joinedRDD = part.join(parts)
但是,当我尝试显示joinedRDD 加入RDD.take(3)
我回来了:
[(u'1', (u'|', u'|')), (u'1', (u'|', u'|')), (u'1', (u'|', u'|'))]
什么给了?
【问题讨论】:
您能否部分发布一些数据,而部分数据可能是 spark 解析文件的问题。它们是管道分隔文件吗? 【参考方案1】:sc.textFile() 返回一个 RDD[String]。您需要使用拆分将字符串解析为数组。然后你需要把它转换成一个键值rdd,然后将两者连接起来。
rdd = sc.textFile("path")
rddSplit = rdd.map(lambda l: l.split(delimiter))
rddKey = rddSplit.map(lambda l: l[keyIndex], l)
rddJoin = rddKey.join(rddKey)
【讨论】:
以上是关于加入两个产生空数据的 RDD的主要内容,如果未能解决你的问题,请参考以下文章