我在我的本地计算机上运行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?
答案 0 :(得分:0)
由于"优先级"这可能发生。在配置中。由于Spark允许使用不同的方法来设置配置参数。在文档中我们可以看到:
指定为flags或属性文件中的任何值都将传递给应用程序,并与通过SparkConf指定的值合并。直接在SparkConf上设置的属性取最高优先级,然后将标志传递给spark-submit或spark-shell,然后选择spark-defaults.conf文件中的选项。自早期版本的Spark以来,已经重命名了一些配置键;在这种情况下,旧的密钥名称仍然被接受,但优先级低于新密钥的任何实例。
了解更多信息:Spark Documentation
所以我建议查看spark-submit参数和配置文件。
希望它有所帮助。