Pypark连接缺少第三列的两个RDD

2024-04-26 12:29:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Pypark的新手,请考虑一下:)

基本上我有两个文本文件:

文件1:

  1,9,5
  2,7,4
  3,8,3

文件2:

 1,g,h
 2,1,j
 3,k,i

以及Python代码:

file1 = sc.textFile("/user/cloudera/training/file1.txt").map(lambda line: line.split(","))

file2 = sc.textFile("/user/cloudera/training/file2.txt").map(lambda line: line.split(","))

现在执行以下操作:

join_file = file1.join(file2)

我希望得到这个:

(1,(9,5),(g,h))
(2,(7,4),(i,j))
(3,(8,3),(k,1))

然而,我得到了一个不同的结果:

(1, (9,g))
(3, (8,k))
(2, (7,1))

我是否缺少Join的任何参数?你知道吗

谢谢!你知道吗


Tags: 文件lambdatxtmaplinetrainingfile1file2
1条回答
网友
1楼 · 发布于 2024-04-26 12:29:33

这应该可以做到:

file1 = sc.textFile("/FileStore/tables/f1.txt").map(lambda line: line.split(",")).map(lambda x: (x[0], list(x[1:])))
file2 = sc.textFile("/FileStore/tables/f2.txt").map(lambda line: line.split(",")).map(lambda x: (x[0], list(x[1:])))
join_file = file1.join(file2)
join_file.collect()

返回Unicode u':

Out[3]: 
[(u'2', ([u'7', u'4'], [u'1', u'j'])),
 (u'1', ([u'9', u'5'], [u'g', u'h'])),
 (u'3', ([u'8', u'3'], [u'k', u'i']))]

相关问题 更多 >