我正在研究火花很长一段时间。在当前项目中,我正在使用数据框并使用 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&重新分区,工作正常,但正在增加运行时间。我需要输出部分文件具有特定的大小,因为我需要稍后将它们发送到云端,并且上传速度取决于每个文件的大小。
我正在尝试查看此行为是否是预期的?为什么?
感谢。