2016-05-12 2 views
0

Я бегу pyspark в моей локальной машине, и я хочу, чтобы ограничить количество используемых ядер и использованной памяти (я 8 ядер и 16Гб памяти)Как ограничить pyspark RESSOURCES

я не делаю знаю, как это сделать, я попытался добавить эти строки в свой код, но процесс все еще жадный.

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) 

Почему конфеты не применяются?

ответ

0

Возможно, это произошло из-за «приоритета» в конфигурациях. Поскольку Spark допускает разные способы настройки параметров конфигурации. В документации можно увидеть:

Любые значения, указанные как флаги или в файле свойств, будут переданы приложению и объединены с теми, которые указаны в SparkConf. Свойства, устанавливаемые непосредственно на SparkConf, имеют наивысший приоритет, затем флаги передаются в исходный текст spark-submit или spark-shell, а затем в файле spark-defaults.conf. Несколько ключей конфигурации были переименованы с более ранних версий Spark; в таких случаях старые имена ключей по-прежнему принимаются, но имеют меньший приоритет, чем любой экземпляр нового ключа.

Для получения дополнительной информации: Spark Documentation

Поэтому я предлагаю обзор искровым представить параметры и файлы конфигурации.

Надеюсь, это поможет.

Смежные вопросы