Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 任务的序列化结果的总大小大于spark.driver.maxResultSize_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 任务的序列化结果的总大小大于spark.driver.maxResultSize

Apache spark 任务的序列化结果的总大小大于spark.driver.maxResultSize,apache-spark,pyspark,Apache Spark,Pyspark,你好 我正在运行一个用于解析一些日志文件的开发代码。如果我尝试解析更少的文件,我的代码将顺利运行。但是当我增加需要解析的日志文件的数量时,它将返回不同的错误,例如打开的文件太多,任务序列化结果的总大小大于spark.driver.maxResultSize 我试图增加spark.driver.maxResultSize的 你能告诉我如何解决这个问题吗 谢谢 任务序列化结果的总大小大于spark.driver。maxResultSize表示当执行器试图将其结果发送给驱动程序时,它超过了spark.

你好

我正在运行一个用于解析一些日志文件的开发代码。如果我尝试解析更少的文件,我的代码将顺利运行。但是当我增加需要解析的日志文件的数量时,它将返回不同的错误,例如
打开的文件太多
任务序列化结果的总大小大于spark.driver.maxResultSize

我试图增加spark.driver.maxResultSize的

你能告诉我如何解决这个问题吗

谢谢


任务序列化结果的总大小大于spark.driver。maxResultSize
表示当执行器试图将其结果发送给驱动程序时,它超过了
spark.driver.maxResultSize
。可能的解决方案如上@mayank agrawal所述,在您让它开始工作之前不断增加它(如果执行者试图发送太多数据,则不建议使用此解决方案)

我建议查看您的代码,看看数据是否有偏差,这使得执行者之一要做大部分工作,从而导致大量数据输入/输出。如果数据倾斜,您可以尝试重新分区

对于太多打开的文件问题,可能的原因是Spark可能在洗牌之前创建了许多中间文件。如果在executor/high parallelism中使用了太多的内核或唯一密钥,则可能会发生这种情况(在您的情况下,可能是因为输入文件数量太多)。需要研究的一个解决方案是通过以下标志合并大量中间文件:
--conf spark.shuffle.consolidateFiles=true
(当您执行
spark提交时


要检查的另一件事是这个线程(如果它与您的用例类似):

在我的例子中,我将maxResultSize增加到比要求的1 gb以上,问题得到了解决。您的任务大小为5 gb。你能试着给6 gb一次吗?请显示代码…
spark.shuffle.consolidateFiles
只有在你覆盖默认值,使用
hashuffleManager
而不是默认值
hashuffleManager
时才会有帮助,我认为它甚至不适用于spark 2.x