sql.shuffle.partitions是如何工作的?它如何影响输出部分文件的大小?

时间:2016-09-14 19:44:22

标签: apache-spark pyspark apache-spark-sql spark-dataframe

我正在研究火花很长一段时间。在当前项目中,我正在使用数据框并使用 sql.shuffle.partitions 进行优化。

我看到调整此属性会影响以下内容,

  • 运行时间
  • 输出文件数
  • 每个输出文件的大小

根据我的观察,我发现这个参数与输出文件大小成反比。在极少数情况下,不确定原因,但增加此属性的值反过来会增加输出部件文件的大小。

----------------------------------------------- ---------- 例如 ------------------------------- -------------------------

Scenario 1:

sql.shuffle.partitions:91 | 输出文件数:91 | 尺寸 每个输出文件: 4.3 MB

Scenario 2:

sql.shuffle.partitions:80 | 输出文件数:80 | 尺寸 每个输出文件: 5.1 MB

Scenario 3:

sql.shuffle.partitions:92 | 输出文件数:92 | 尺寸 每个输出文件: 4.1 MB

从上面的示例运行中可以看出,不清楚为什么输出文件大小不是预期的方式。

我尝试了其他选项,例如 coalesce&重新分区,工作正常,但正在增加运行时间。我需要输出部分文件具有特定的大小,因为我需要稍后将它们发送到云端,并且上传速度取决于每个文件的大小。

我正在尝试查看此行为是否是预期的?为什么?

感谢。

0 个答案:

没有答案