如何在火花应用程序(Pyspark)上识别瓶颈



我的pyspark应用程序的性能缓慢。我的功能涉及5个数据范围,并在内部有一些加入和协议。当我只调用此功能一次时,它会成功运行。但是,当我不止一次地调用它时,在过程中(仅更改参数,但数据量相同(,它不会终止。它在我无法识别的某个部分停止。我的问题是:如何调试我的火花应用程序以识别此瓶颈?

我通常使用以下步骤进行测试和对SPARK应用程序进行故障排除

  1. master = local

    使用小型数据集使用master=local执行应用程序/管道。使用此选项,我可以在本地使用我喜欢的IDE运行Spark应用程序桌面,也可以使用调试选项。

   spark = SparkSession.builder.appName("MyApp").config("master", "local").getOrCreate()
  1. - Demoly-Mode客户端

    解决问题并在本地工作,将应用程序和部署应用程序与小型数据集以client模式执行并执行。如果有的话,我们可以在控制台中看到任何错误消息/stacktraces等。

  2. - demoly-mode cluster

    现在以cluster模式执行,具有大/实际数据集并更新Spark性能的设置,例如执行者,执行者内存等。

相关内容

最新更新