【问题标题】:What are the files generated by Spark when using "saveAsTextFile"?使用“saveAsTextFile”时,Spark 生成的文件有哪些?
【发布时间】:2014-05-27 20:13:59
【问题描述】:

当我运行 Spark 作业并使用 https://spark.apache.org/docs/0.9.1/api/core/index.html#org.apache.spark.rdd.RDD 指定的方法“saveAsTextFile”将输出保存为文本文件时:

这里是创建的文件:

.crc 文件是循环冗余检查文件吗? so 用于检查每个生成文件的内容是否正确?

_SUCCESS 文件总是空的,这是什么意思?

上面截图中没有扩展名的文件包含来自RDD的实际数据,但是为什么生成了很多文件而不是一个?

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    当您调用 saveAsTextFile() 时,Spark 会调用这些底层 Hadoop API 生成的文件。

    • part- 文件:这些是您的输出数据文件。

      在您调用saveAsTextFile() 的RDD 中,每个分区都有一个part- 文件。这些文件中的每一个都将被并行写出,达到一定的限制(通常是集群中工作程序上的核心数)。这意味着如果您的存储层可以处理带宽,那么如果将其全部放在一个文件中,您将更快地写入输出。

      您可以检查 RDD 中的分区数,这应该会告诉您预期有多少 part- 文件,如下所示:

      # PySpark
      # Get the number of partitions of my_rdd.
      my_rdd._jrdd.splits().size()
      
    • _SUCCESS 文件:空的_SUCCESS 文件的存在仅仅意味着操作正常完成。

    • .crc 文件:我之前没有见过.crc 文件,但是是的,大概它们是对part- 文件的检查。

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 2016-08-06
      • 2019-01-21
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多