我的pyspark应用程序运行缓慢。 我有一个涉及5个数据帧的函数,里面有联接和聚合。 当我只调用一次此函数时,它成功运行。 但是,当我多次调用它时,在进程内部(仅更改参数,但数据量相同)不会终止。 它在某些我无法识别的地方停止了。 我的问题是:如何调试我的spark应用程序以识别此瓶颈?
答案 0 :(得分:0)
我通常按照以下步骤测试并解决我的Spark应用程序
master = local
使用master=local
和小型数据集执行应用程序/管道。
使用此选项,我可以在本地使用我最喜欢的IDE运行Spark应用程序
桌面,也可以使用调试选项。
spark = SparkSession.builder.appName("MyApp").config("master", "local").getOrCreate()
-部署模式客户端
一旦问题解决并在本地解决,将应用程序打包并部署到edgenode并以小型数据集以client
模式执行。我们可以在控制台中看到任何错误消息/堆栈跟踪信息等。
-部署模式群集
现在以cluster
模式执行,具有大型/实际数据集,并更新火花性能的设置,例如执行器数量,执行器内存等。