我需要将PipelinedRDD存储到hadoop文件中
我在PySpark中完成了所有这些 首先,我将一个文件从HDFS读入RDD:我需要将PipelinedRDD存储到hadoop文件中,hadoop,apache-spark,hdfs,pyspark,rdd,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,有很多行
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
不是RDD
,而是一个本地列表。如果您想保留RDD
,请不要使用collect
。要保存文件,您可以使用例如saveAsTextFile
方法:
newfile.map(
lambda r: [r[25], r[79], r[108], r[451]]
).saveAsTextFile(some_hdfs_path)
你的意思是如果我这样做:A=newfile.map(lambda r:[r[25],r[79],r[108],r[451])。A是RDD。但是,如果我这样做:A=newfile.map(lambda r:[r[25],r[79],r[108],r[451]]).collect(),A是一个列表?是的,这正是我的意思。