file - 如何在 Spark 中写入 CSV

标签 file csv hadoop apache-spark distributed-computing

我正在尝试找到一种有效的方法来将我的 Spark 作业的结果保存为 csv 文件。我将 Spark 与 Hadoop 一起使用,到目前为止,我的所有文件都保存为 part-00000

关于如何将我的 spark 保存到具有指定文件名的文件的任何想法?

最佳答案

由于 Spark 使用 Hadoop 文件系统 API 将数据写入文件,因此这是不可避免的。如果你这样做了

rdd.saveAsTextFile("foo")

它将被保存为“foo/part-XXXXX”,其中一个部分-* 文件在您尝试保存的 RDD 中的每个分区。 RDD 中的每个分区都写入一个单独的文件的原因是为了容错。如果写入第三个分区(即 part-00002)的任务失败,Spark 只需重新运行任务并覆盖部分写入/损坏的 part-00002,没有任何效果在其他部分。如果他们都写入同一个文件,那么恢复单个任务的失败就困难得多。

如果您要在基于 Spark/Hadoop 的框架中再次使用 part-XXXXX 文件通常不是问题,因为它们都使用 HDFS API,如果您要求它们阅读“foo”,它们也会读取 foo 中的所有 part-XXXXX 文件。

关于file - 如何在 Spark 中写入 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527941/

相关文章:

perl - 在Hadoop上的Perl中,如何获取映射器正在处理的文件的文件?

bash - 如何列出空文件? ( bash )

c++ - 读取二进制格式的问题 [C++]

javascript - D3 - 使笔画宽度与第二个数据集共变

hadoop - 一个作业的输出到多个文件

hadoop - 为Python运行Hadoop流(版本-2.6.5)时出现classnotfoundexception

c++ - 如何从文件中读取某一行并从下面的那一点开始读取,在 C++ 中?

java - FileChannel 和 Socket 之间传输文件

php - 从 HTML 表单解析 CSV 并插入 MYSQL 数据库

mysql - MySQL自动导入的错误日志?