当我运行Spark作业并使用https://spark.apache.org/docs/0.9.1/api/core/index.html#org.apache.spark.rdd.RDD中指定的方法“saveAsTextFile”将输出保存为文本文件时:
这里是创建的文件:
.crc文件是循环冗余校验文件吗?用于检查每个生成的文件的内容是否正确?
_SUCCESS文件始终为空,这表示什么?
上面屏幕截图中没有扩展名的文件包含来自RDD的实际数据,但为什么生成了多个文件而不只是一个?
答案 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-
个文件的检查。