ORC 格式的非格式化表中有 200 个文件。每个文件约170KB。总大小约33MB。
想知道为什么 Spark 阶段读取表会生成 7 个任务。该作业分配给一个具有 5 个核心的执行器。
Spark 将文件映射到分区的方式非常复杂,但有 2 个主要配置选项会影响创建的分区数量:
spark.sql.files.maxPartitionBytes默认情况下为 128 MB,设置可拆分源的最大分区大小。因此,如果您有 2 GB ORC 文件,最终将有 16 个分区。
spark.sql.files.openCostInBytes默认情况下为 4 MB,用作创建新分区的成本,这基本上意味着如果文件小于 4 MB,Spark 会将文件连接到相同的分区中。如果您有很多小的可分割文件,默认情况下您最终会得到大小约为 4MB 的分区,这就是您的情况。
如果您有不可分割的源(例如 gzip 压缩文件),则无论其大小如何,它们始终会位于单个分区中。
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |