apache-spark - 如何调试缓慢的 PySpark 应用程序
问题描述
对此可能有一个明显的答案,但经过大量谷歌搜索后我找不到任何答案。
在一个典型的程序中,我通常会添加日志消息来为代码的不同部分计时,并找出瓶颈在哪里。然而,使用 Spark/PySpark 时,转换是延迟评估的,这意味着大部分代码在几乎恒定的时间内执行(至少不是数据集大小的函数),直到最后调用一个动作。
那么,如何在必要和可能的情况下通过不同的方式来安排单独的转换时间,并可能使代码的某些部分更有效率呢?
解决方案
您可以使用 Spark UI 查看作业的执行计划和每个阶段的时间。然后,您可以使用该统计数据优化您的操作。这是关于使用 Spark UI https://youtu.be/mVP9sZ6K__Y (Spark Sumiit Europe 2016, by Jacek Laskowski)监控 Spark 应用程序的非常好的演示文稿
推荐阅读
- spring - How to config JPA in spring mvc?
- pentaho - 为什么我在 pentaho cde 中传递日期参数时看不到示例数据图表?
- reactjs - reactjs链接不起作用,在ajax请求后渲染时
- netsuite - 通过 Suitelet 使用 Netsuite 信用卡付款
- primefaces - 在 Primefaces 数据表单元格编辑器中选择每个项目上的选择行复选框
- python - 为衰减变量优化以下python代码部分
- git - 如何在 azure devops 中设置默认分支策略
- c - 试图从 C 代码中获取 windows 版本
- mongodb - MongoDB克隆到另一个集群
- reactjs - 如何在material-ui中同时激活所有步骤?