Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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/loops/2.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
Python 重新分区()导致spark作业失败_Python_Apache Spark_Pyspark_Apache Spark 1.6 - Fatal编程技术网

Python 重新分区()导致spark作业失败

Python 重新分区()导致spark作业失败,python,apache-spark,pyspark,apache-spark-1.6,Python,Apache Spark,Pyspark,Apache Spark 1.6,我有一个spark作业,它使用以下代码运行文件。但是,此步骤将在输出文件夹中创建多个文件 sampledataframe.write.mode('append').partitionBy('DATE_FIELD').save(FILEPATH) 因此,我开始使用下面的代码行对这些文件进行重新分区,并创建一个单独的文件 sampledataframe.repartition('DATE_FIELD').write.mode('append').partitionBy('DATE_FIELD').

我有一个spark作业,它使用以下代码运行文件。但是,此步骤将在输出文件夹中创建多个文件

sampledataframe.write.mode('append').partitionBy('DATE_FIELD').save(FILEPATH)
因此,我开始使用下面的代码行对这些文件进行重新分区,并创建一个单独的文件

sampledataframe.repartition('DATE_FIELD').write.mode('append').partitionBy('DATE_FIELD').save(FILEPATH)
这段代码在几个月内运行良好,但最近开始失败,出现以下错误

[2019-09-26 16:15:48,030] {bash_operator.py:74} INFO - 19/09/26 16:15:48 WARN TaskSetManager: Lost task 48.0 in stage 1.0 (TID 812, aaa.bbb.io): org.apache.spark.SparkException: Task failed while writing rows
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.DynamicPartitionWriterContainer.writeRows(WriterContainer.scala:417)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:148)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1$$anonfun$apply$mcV$sp$3.apply(InsertIntoHadoopFsRelation.scala:148)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
[2019-09-26 16:15:48,031] {bash_operator.py:74} INFO - at org.apache.spark.scheduler.Task.run(Task.scala:89)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:247)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - at java.lang.Thread.run(Thread.java:748)
[2019-09-26 16:15:48,032] {bash_operator.py:74} INFO - Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)

以前有人遇到过这个错误吗?您能告诉我如何解决这个问题吗?

我想这与内存分配有关。最近,您可能需要处理更多数据,这可能会导致超时/偏斜等问题


任务中是否存在任何数据偏斜。你能检查一下吗。另外,请共享您的群集配置和spark提交内存参数。

这似乎主要是执行者没有获得足够内存的问题。当您试图创建单个文件时,代码将需要足够的内存来支持无序写入

如果文件太大,主节点上的内存将成为瓶颈

可能的解决办法是:

  • 检查master的资源使用情况,如果资源使用情况不佳,则增加资源使用量
    似乎被过度利用了
  • 一个长期的解决方案是将相关模块更新为 阅读部件文件以使任务可伸缩,然后就可以开始了 编写部件文件