首页 > 解决方案 > 如何调试缓慢的 PySpark 应用程序

问题描述

对此可能有一个明显的答案,但经过大量谷歌搜索后我找不到任何答案。

在一个典型的程序中,我通常会添加日志消息来为代码的不同部分计时,并找出瓶颈在哪里。然而,使用 Spark/PySpark 时,转换是延迟评估的,这意味着大部分代码在几乎恒定的时间内执行(至少不是数据集大小的函数),直到最后调用一个动作。

那么,如何在必要和可能的情况下通过不同的方式来安排单独的转换时间,并可能使代码的某些部分更有效率呢?

标签: apache-sparkpyspark

解决方案


您可以使用 Spark UI 查看作业的执行计划和每个阶段的时间。然后,您可以使用该统计数据优化您的操作。这是关于使用 Spark UI https://youtu.be/mVP9sZ6K__Y (Spark Sumiit Europe 2016, by Jacek Laskowski)监控 Spark 应用程序的非常好的演示文稿


推荐阅读