我可以使用np.dot
删除重复的行,例如:
distinct()
scala> val file = sc.textFile("input.txt")
scala> val result = file.distinct()
scala> result.saveAsTextFile("output")
看起来像:
input.txt
16408753Y, 1554250
16408753Y, 1554250
16408753Y, 1555250
16408755-, 0511252
16408755-, 0511252
在......
和distinct()
之后,我可以删除重复的行,结果如下:
result.saveAsTextFile("output")
16408753Y, 1555250
16408755-, 0511252
我在HDFS中获得了2个分区,例如......
和part-00000
如果我使用part-00001
,我只会得到一个分区,例如distinct(1)
。
我的第一个问题是:
1. 如果我不使用part-00000
,如何将2个分区合并为一个文件?
我也希望我的结果按字母排序,这是我的工作:
distinct(1)
scala> val pairs = result.map(x => (x.split(",\t")(0), x.split(",\t")(1)))
scala> val sortedpair = pairs.sortByKey()
我明白了:
scala> sortedpair.saveAsTextFile("output/sorting")
(16408753Y, 1555250)
我的第二个问题是:
2。我确实有排序结果,但在(16408755-, 0511252)
时如何删除(
和)
?此外,我是否使用正确的方法,如saveAsTextFile()
和map(x => (x.split(",\t")(0), x.split(",\t")(1)))
?
感谢。
答案 0 :(得分:0)
就第一个问题而言,没有办法,因为每个分区的结果都写入不同的文件。
第二个问题的答案是将其放在saveAsTextFile
方法之前:
map(x => x._1+", "+x._2)