tl; dr Вам нужно превратить ваш development.conf
файл в словарь для передачи на dataproc_spark_properties
.
Полное объяснение:
Существует два основных способа задания свойств -на уровне кластера и на уровне задания.
1) Уровень задания
Похоже, вы пытаетесь установить их на уровне задания: DataProcSparkOperator(dataproc_spark_properties={'foo': 'bar', 'foo2': 'bar2'})
.Это так же, как gcloud dataproc jobs submit spark --properties foo=bar,foo2=bar2
или spark-submit --conf foo=bar --conf foo2=bar2
.Вот документация для свойств каждого задания.
Аргументом spark.driver.extraJavaOptions
должны быть аргументы командной строки, которые вы передадите java.Например, -verbose:gc
.
2) Уровень кластера
Вы также можете установить свойства на уровне кластера, используя DataprocClusterCreateOperator(properties={'spark:foo': 'bar', 'spark:foo2': 'bar2'})
, что совпадает с gcloud dataproc clusters create --properties spark:foo=bar,spark:foo2=bar2
( документация).Опять же, вам нужно использовать словарь.
Важно, что если вы указываете свойства на уровне кластера, вам необходимо добавить к ним префикс, с каким файлом конфигурации вы хотите добавить свойство.Если вы используете spark:foo=bar
, это означает добавление foo=bar
к /etc/spark/conf/spark-defaults.conf
.Существуют аналогичные префиксы для yarn-site.xml
и т. Д.
3) Использование файла .conf
на уровне кластера
Если вы не хотите превращать файл .conf
всловарь, вы также можете просто добавить его к /etc/spark/conf/spark-defaults.conf
, используя действие инициализации при создании кластера.
Например (это не проверено):
#!/bin/bash
set -euxo pipefail
gsutil cp gs://path/to/my.conf .
cat my.conf >> /etc/spark/conf/spark-defaults.conf
Обратите внимание, что вы хотите добавить, а не заменить существующий файл конфигурации, просто чтобы переопределить только те конфигурации, которые вам необходимы.