如何限制pyspark资源

时间:2016-05-12 10:11:59

标签: pyspark

我在我的本地计算机上运行pyspark,我想限制已用内核和已用内存的数量(我有8个内核和16Gb内存)

我不知道怎么做,我试图将这些行添加到我的代码中,但这个过程仍然很贪婪。

from pyspark import SparkContext, SparkConf

conf = (SparkConf().setMaster("local[4]")
    .set("spark.executor.cores", "4")
    .set("spark.cores.max", "4")
    .set('spark.executor.memory', '6g')
)

sc = SparkContext(conf=conf)
rdd = sc.parallelize(input_data, numSlices=4)

map_result = rdd.map(map_func)
map_result.reduce(reduce_func)

为什么不应用confs?

1 个答案:

答案 0 :(得分:0)

由于"优先级"这可能发生。在配置中。由于Spark允许使用不同的方法来设置配置参数。在文档中我们可以看到:

  

指定为flags或属性文件中的任何值都将传递给应用程序,并与通过SparkConf指定的值合并。直接在SparkConf上设置的属性取最高优先级,然后将标志传递给spark-submit或spark-shell,然后选择spark-defaults.conf文件中的选项。自早期版本的Spark以来,已经重命名了一些配置键;在这种情况下,旧的密钥名称仍然被接受,但优先级低于新密钥的任何实例。

了解更多信息:Spark Documentation

所以我建议查看spark-submit参数和配置文件。

希望它有所帮助。