我正在具有200个分区的数据帧的多列上运行Spark SQL查询。 这将在Spark上启动多个作业,这些作业在几秒钟内完成。我有大约10,000个这样的快速运行的工作。即使作业很快,应用程序仍需要花费数小时才能运行,并且无法完成。 我为执行程序分配和作业的FIFO调度启用了Spark动态分配(spark.dynamicAllocation.enabled)。
到目前为止,我的优化想法一直在尝试减少分区数,以便查看是否可以让更多的小型作业并行完成或尝试切换为FAIR调度。我不确定我是否在这里正确。如果有人有更好的主意,请告诉我。
谢谢