Использовать словарь в аргументе conf SparkSubmitOperator - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь настроить ETL с Airflow и Spark.
У меня есть данные в переменной XCom fs_etl_conf со словарем от pu sh до XCom:

{'spark.conf.etl.fsname': 'ffff',
'spark.conf.etl.fstype': 'fffff', 'spark.conf.etl.dryrun': 'false',
'spark.conf.etl.input.file': '/path/to/file',
'spark.conf.etl.input.mode': 'FAILFAST',
'spark.conf.etl.output.file': '/path/to/file',
'spark.conf.etl.output.format': 'parquet',
'spark.conf.etl.output.mode': 'ign',
'spark.conf.etl.output.repartition': '',
'spark.conf.etl.output.partitionby': '',
'spark.conf.etl.output.orderby': ''}

, но когда Я пытаюсь вывести sh, который диктует внутри моего SparkSubmitOperator:

SparkSubmitOperator(conf={{ 'ti.xcom_pull(key="fs_etl_conf")' }},
conn_id='spark', files=None, java_class='class.main'
name="jobname",
application=Variable.get('SPARK_ETL_URL'),
task_id='spark_etl',
dag=dag
)

Проблема в том, что conf принимает тип dict, а не строку, но я не могу найти правильный способ вытащить Значение xcom как dict, а не как строка, и у меня возникает проблема, потому что при создании командной строки он ожидает dict, а не String.

...