在pyspark中,我可以通过执行以下操作在zeppelin(在AWS EMR上)中更改为公平的调度程序:
conf = sc.getConf()
conf.set('spark.scheduler.allocation.file',
'/etc/spark/conf.dist/fairscheduler.xml.template')
sc.setLocalProperty("spark.scheduler.pool", 'production')
但是,如果我在scala单元格中尝试类似的东西,那么事情将继续在FIFO池中运行
val conf = sc.getConf()
conf.set("spark.scheduler.allocation.file",
"/etc/spark/conf.dist/fairscheduler.xml.template")
sc.setLocalProperty("spark.scheduler.pool", "FAIR")
我尝试了很多组合,但没有任何效果。任何建议表示赞赏。
我遇到了与Spark 2.4类似的问题。在我的情况下,通过删除我的Spark配置中的默认“spark.scheduler.pool”选项解决了该问题。可能是您的Scala Spark解释器设置了spark.scheduler.pool,但您的python不是。
我将问题追溯到Spark中的一个错误 - https://issues.apache.org/jira/browse/SPARK-26988。问题是,如果在基本配置中设置配置属性“spark.scheduler.pool”,则无法使用setLocalProperty覆盖它。从基本配置中删除它使其正常工作。有关详细信息,请参阅错误说明。