使用“saveAsTextFile”时Spark生成的文件是什么?

时间:2014-05-27 20:13:59

标签: apache-spark

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

enter image description here

这里是创建的文件:

enter image description here

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

_SUCCESS文件始终为空,这表示什么?

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

1 个答案:

答案 0 :(得分:14)

这些是由您调用saveAsTextFile()时Spark调用的基础Hadoop API生成的文件。

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

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

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

    # PySpark
    # Get the number of partitions of my_rdd.
    my_rdd._jrdd.splits().size()
    
  • _SUCCESS file:存在空_SUCCESS文件只表示操作正常完成。

  • .crc个文件:之前我没有看到.crc个文件,但是是的,可能是对part-个文件的检查。