从文本文件中排序值集合,并使用pyspark将已排序的值保存回文本文件

时间:2016-03-16 01:50:22

标签: apache-spark pyspark rdd bigdata

我正在尝试使用以下格式的记录对文本文件进行排序 input.txt中:

b1 xy
a2 pq

这是我的pySpark代码:

distFile = sc.textFile(input.txt)
words = distFile.map(lambda x: [x[:2],x[2:]])
words.saveAsTextFile("output")

这就是我作为输出内容获得的内容

输出/部分-00000

[u'a2', u'pq']
[u'b1', u'xy']

我希望内容为:

a2 pq
b1 xy

我做错了什么?

当我使用words.saveAsPickleFile("output")

时,我也会得到垃圾值

1 个答案:

答案 0 :(得分:2)

您需要将所有strings合并为一个。类似于:

rdd = sc.parallelize([("Roger", "Andrew"),
                      ("Melissa", "Goldsmith")])

words = rdd.map(lambda (n, ln): n + " " + ln)

words.repartition(1).saveAsTextFile("output")

结果如下:

How it looks