Как изменить свойства SparkContext в интерактивном сеансе PySpark
Как я могу поменять свечи.водитель.maxResultSize в интерактивной оболочке pyspark? Я использовал следующий код
from pyspark import SparkConf, SparkContext
conf = (SparkConf()
.set("spark.driver.maxResultSize", "10g"))
sc.stop()
sc=SparkContext(conf)
но это дает мне ошибку
AttributeError: 'SparkConf' object has no attribute '_get_object_id'
3 ответов
Так что вы видите, что SparkConf
не является объектом java, это происходит потому, что он пытается использовать SparkConf
в качестве первого параметра, если вместо вас sc=SparkContext(conf=conf)
он должен использовать свою конфигурацию. Тем не менее, вам может быть лучше просто запустить обычную программу python, а не останавливать контекст spark по умолчанию и повторно запускать его, но вам нужно будет использовать метод именованных параметров для передачи объекта conf в любом случае.
правильный способ встроенного изменения настроек spark для данного контекста Spark требует, чтобы контекст был закрыт. Например:
from pyspark import SparkContext
SparkContext.setSystemProperty('spark.driver.maxResultSize', '10g')
sc = SparkContext("local", "App Name")
источник:https://spark.apache.org/docs/0.8.1/python-programming-guide.html
p.s. если вам нужно закрыть SparkContext, просто используйте:
SparkContext.stop(sc)
и дважды проверить текущие настройки, которые были установлены, Вы можете использовать:
sc._conf.getAll()
обновить конфигурацию в Искра 2.3.1
чтобы изменить настройки spark по умолчанию, выполните следующие действия:
импортировать необходимые классы
from pyspark.conf import SparkConf
from pyspark.sql import SparkSession
сделать настройки по умолчанию
spark.sparkContext._conf.getAll()
Обновить конфигурацию по умолчанию
conf = spark.sparkContext._conf.setAll([('spark.executor.memory', '4g'), ('spark.app.name', 'Spark Updated Conf'), ('spark.executor.cores', '4'), ('spark.cores.max', '4'), ('spark.driver.memory','4g')])
остановить текущую сессию Spark
spark.sparkContext.stop()
создать искру Сеанс
spark = SparkSession.builder.config(conf=conf).getOrCreate()