2016-02-26 3 views
-1

Я выполнил все это в PySpark.Мне нужно сохранить PipelinedRDD в файл hadoop

первым прочитать файл из HDFS в РДУ:

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 является конвейерным RDD с многочисленными строками и четырьмя столбцами. Мне нужно хранить A на HDFS. как это сделать ?

ответ

1

A не RDD, но и местный список. Если вы хотите сохранить RDD, не используйте collect. Чтобы сохранить файл, который вы можете использовать, например, saveAsTextFile метод:

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

так вы имеете в виду, если я просто сделать это: A = newfile.map (лямбда-г: [г [25], г [79], г [108 ], r [451]]). A - это RDD. Однако, если я это сделаю: A = newfile.map (lambda r: [r [25], r [79], r [108], r [451]]). Collect(), A - список? –

+0

Да, это именно то, что я имею в виду. – None

Смежные вопросы