【发布时间】:2022-04-05 05:15:10
【问题描述】:
我对火花有点陌生。在我的 spark calc 完成后,我目前正在向亚马逊 s3 写入一些非常奇怪的慢速镶木地板。
写一个小文件用了1.8小时(写的时候有2个分区)
我使用不同的 LARGER 文件(更多行 + 更多列)运行相同的 spark calc(写入时有 3 个分区)
write 调用本身:df.write.mode("overwrite").parquet(key)
我尝试查看 SQL 计划,但它们看起来并没有什么不同。即使缓慢来自文件差异,我也不希望一个小于 1 分钟而另一个 > 1.5 小时。
对于我的慢速文件,我取出了 parquet 写入,总计算时间从 2.6 小时 -> 1 小时,所以我不认为它在最后执行惰性 eval 导致它变慢。
你们对调查什么有什么建议吗?我尝试检查历史服务器的 DAG 和 SQL 选项卡,但没有看到任何突出的内容。 # 执行者是相同的。主要差异我看到更大更快的文件在编写 parquet 时有 3 个任务,但每个任务处理的行数和字节数都比较小的慢速文件多。
【问题讨论】:
-
您是否尝试比较生成的 parquet 文件的元数据?
-
我没有看到任何异常,只是行大小和其他东西。我应该寻找一些具体的东西吗?列平均?指标?
标签: apache-spark pyspark parquet