根据https://spark.apache.org/docs/2.4.6/configuration.html
该选项理论上应该允许每个任务占用2个核心。现在如果我有一台16核的机器并运行以下程序:
TestSC = <... initialising spark context here>
TestSC.setLocalProperty("spark.task.cpus", "2")
val rdd = TestSC.parallelize(1 to 100, 100).map { i =>
Thread.sleep(99999999)
i
}
rdd.collect()
它应该允许8个任务同时执行。但当我转到spark ui时,它仍然显示同时执行的16个任务。这是怎么回事?这个选项被禁用了吗?
1条答案
按热度按时间u91tlkcl1#
在创建spark上下文之前设置属性,如下所示:
当spark上下文被这样创建时,设置应该生效。