我在PySpark中完成了所有这些。
首先我将HDFS中的文件读入RDD:
distFile=sc.textFile("hdfs.......tsv")
然后我按列拆分它们:
newfile = distFile.map(lambda line: line.split('\t'))
然后我提取我需要的列:
A = newfile.map(lambda r: [r[25], r[79], r[108], r[451]]).collect()
所以现在A是一个有许多行和四列的pipelinedRDD。我需要在HDFS上存储A.我该怎么做?
答案 0 :(得分:1)
A
不是RDD
,而是本地列表。如果您希望RDD
不要使用collect
。要保存文件,您可以使用例如saveAsTextFile
方法:
newfile.map(
lambda r: [r[25], r[79], r[108], r[451]]
).saveAsTextFile(some_hdfs_path)