SaveAsTextFile没有写

时间:2015-01-17 19:13:13

标签: python hadoop apache-spark rdd

我在Python中工作,使用Hadoop和PySpark。我有一个RDD,我在代码的末尾输出(我已经验证它输出正确),我试图使用.saveAsTextFile()方法保存为文本文件。 代码运行完成并生成_success文件,但目录的其余部分为空。

outputFile='hdfs:///data/withCoalesce'
combinedTable= all_transactions_reduced.join(credit_payments_reduced)
combinedTableMapped= combinedTable.map(lambda x: (x[0], list(x[1][0])+x[1][1]))
combinedTableMapped.coalesce(1, shuffle=True).saveAsTextFile(outputFile)

当我进入Hadoop FS并查看目录中的文件时,它们都是空的。有谁知道为什么会发生这种情况?谢谢!

1 个答案:

答案 0 :(得分:0)

使用collect()saveAsTextFile()来电之前检索并打印数据。这应该告诉你RDD究竟是什么。最简单的解释是RDD是否为空。

你为什么要coalesce(1)?这可以防止您处理大量数据。我建议不要这样做。但是,如果数据很小,并且您确实想拥有一个文件,则只需使用collect()并从驱动程序中写入文件,而不是使用saveAsTextFile()