Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何调试缓慢的PySpark应用程序_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 如何调试缓慢的PySpark应用程序

Apache spark 如何调试缓慢的PySpark应用程序,apache-spark,pyspark,Apache Spark,Pyspark,对此可能有一个显而易见的答案,但我在谷歌上搜索了很多遍后,还是找不到任何答案 在一个典型的程序中,我通常会添加日志消息来计时代码的不同部分,并找出瓶颈所在。然而,对于Spark/PySpark,转换是以延迟的方式进行计算的,这意味着大部分代码在几乎恒定的时间内执行(至少不是数据集大小的函数),直到最后调用操作为止 那么,如何对各个转换进行计时,并通过在必要和可能的情况下以不同的方式进行操作,使代码的某些部分更加高效呢?您可以使用Spark UI查看作业的执行计划以及作业的每个阶段的时间。然后,您

对此可能有一个显而易见的答案,但我在谷歌上搜索了很多遍后,还是找不到任何答案

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


那么,如何对各个转换进行计时,并通过在必要和可能的情况下以不同的方式进行操作,使代码的某些部分更加高效呢?

您可以使用Spark UI查看作业的执行计划以及作业的每个阶段的时间。然后,您可以使用这些统计信息优化您的操作。这是一个关于使用Spark UI监控Spark应用程序的非常好的演示(Spark Sumiit Europe 2016,由Jacek Laskowski撰写)