Pyspark Job最后几个任务挂起

时间:2017-07-09 21:09:38

标签: apache-spark pyspark

嗨,我遇到了pyspark工作的一个奇怪问题,无法弄清楚发生了什么。 基本上我从数据帧转换RDD。然后我使用pipe()来调用外部命令来逐个处理RDD中的元素。 一切都运作良好,直到最后只有4个任务将继续运行,永远不会完成。 当我检查执行程序日志时,看起来所有记录都已处理但由于某种原因,任务没有退出。

只是想知道是否有人有任何线索?

Job Status

enter image description here

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,看起来像是一个僵局。执行程序的线程处于WAITING状态,如线程转储中所示: thread dump以及作业的任务时间是0ms(意味着它还没有开始!):task time

同时驱动程序进程认为执行程序正在运行并正在等待其结果: actively doing something 可以通过终止整个作业并检查日志来检查最后一部分。对我来说,在.toDF()mapPartitions(...)说些什么之后,杀死这份工作总是中断getResults

实际上,seiya通过他/她的评论激发了我提出一个想法。完整缓冲区可能是此行为的解释,因此我增加了与缓冲区相关的Spark设置的值,即spark.shuffle.file.buffer=256kspark.kryoserializer.buffer.max=256m,这是其默认值的四倍。由于我更改了这些设置,因此问题暂时没有发生。