【发布时间】:2019-11-06 17:04:24
【问题描述】:
我在 Yarn 上运行 spark sql,遇到了同样的问题,如下链接: Spark: long delay between jobs
保存表格的操作延迟了很长时间。 在 Spark UI 上,我可以看到特定的 saveAsTable() 作业已完成,但没有提交任何新作业。 spark ui screenshot
在第一个链接中,答案说 I/O 操作将发生在主节点上,但我对此表示怀疑。
在间隙时间,我检查了保存表格的 hdfs,然后我可以看到 _temporary 文件而不是 _success 文件。看起来答案是真实的,spark 正在驱动程序端保存表。为什么?!!
我正在使用下面的代码来保存表格:
dataframe.write.partitionBy(partitionColumn)).format(format)
.mode(SaveMode.Overwrite)
.saveAsTable(s"$tableName")
顺便说一句,格式是orc格式的文件。 谁能给我一些建议? :) 提前谢谢。
【问题讨论】:
-
不确定我将 spark.sql.shuffle.partitions 增加到 2000 的更改是否会导致此问题。
标签: apache-spark apache-spark-sql