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

blu*_*sky 18 apache-spark

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

在此输入图像描述

这是创建的文件:

在此输入图像描述

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

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

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

Nic*_*mas 17

这些是由Spark调用时调用的底层Hadoop API生成的文件saveAsTextFile().

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

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

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

    # PySpark
    # Get the number of partitions of my_rdd.
    my_rdd._jrdd.splits().size()
    
    Run Code Online (Sandbox Code Playgroud)
  • _SUCCESSfile:存在空_SUCCESS文件只是意味着操作正常完成.

  • .crc文件:我之前没有看过这些.crc文件,但是是的,大概是他们检查part-文件.