我需要将PipelinedRDD存储到hadoop文件中

时间:2016-02-26 19:26:53

标签: hadoop apache-spark hdfs pyspark rdd

我在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.我该怎么做?

1 个答案:

答案 0 :(得分:1)

A不是RDD,而是本地列表。如果您希望RDD不要使用collect。要保存文件,您可以使用例如saveAsTextFile方法:

newfile.map(
    lambda r: [r[25], r[79], r[108], r[451]]
).saveAsTextFile(some_hdfs_path)