如何解决PySpark-加入两个格式不同的RDD
我正在Pyspark中执行一些任务。任务之一是加入两个RDD。但是,RDD(来自文本文件)具有不同的架构:
RDD1:
id,col2
RDD2:
col1,id,col2,col3,col4,col5
我想要的输出应该是:
id,rdd1.col2,rdd2.col2,rdd.col3. rdd.col4,rdd.col5
为此,我正在尝试以下代码:
rdd1 = sc.textFile(myfile1)
rdd2 = sc.textFile(myfile2)
rdd1Map = rdd1.map(lambda a: (a.split(",")[0],a))
rdd2Map = rdd2.map(lambda a: (a.split(",")[1],a))
for i in rdd1Map.take(5): print(i)
for i in rdd2Map.take(5): print(i)
rdd2Map = rdd2Map.map(lambda a: (a.split(",a.split(",")[2],")[3],")[4],")[5]))
rdd1Map = rdd1Map.map(lambda a: (a.split(",0))
rddJoin = rdd1Map.join(rdd2Map)
rddJoin.count()
基本上,我试图将0列只是为了在两个RDD上具有相同的架构。联接由id列构成。但是我遇到了以下错误:
map_values_fn = lambda (k,v): (k,f(v))
ValueError: too many values to unpack
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。