Используйте Spark fileoutputcommitter.algorithm.version = 2 с AWS Glue - PullRequest
1 голос
/ 03 июня 2019

Мне не удалось выяснить это, но я пытаюсь использовать фиксатор прямого вывода с AWS Glue:

spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2

Можно ли использовать эту конфигурацию с AWS Glue?

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

Вариант 1:

Glue использует контекст искры, вы также можете настроить конфигурацию hadoop на ws glue. поскольку внутренне динамический фрейм является своего рода фреймом данных.

sc._jsc.hadoopConfiguration().set("mykey","myvalue")

Я думаю, что вам нужно добавить соответствующий класс, как этот

sc._jsc.hadoopConfiguration().set("mapred.output.committer.class", "org.apache.hadoop.mapred.FileOutputCommitter")

пример фрагмента:

 sc = SparkContext()

    sc._jsc.hadoopConfiguration().set("mapreduce.fileoutputcommitter.algorithm.version",2)

    glueContext = GlueContext(sc)
    spark = glueContext.spark_session

Чтобы доказать, что эта конфигурация существует ....

Отладка в python:

sc._conf.getAll() // print this

Отладка в Scala:

sc.getConf.getAll.foreach(println)

Вариант 2:

Другая сторона, которую вы пытаетесь использовать параметры работы клея:

https://docs.aws.amazon.com/glue/latest/dg/add-job.html который имеет свойства значения ключа, такие как упомянутые в документах

'--myKey' : 'value-for-myKey'  

Вы можете следовать приведенному ниже снимку экрана для редактирования задания и задания параметров с помощью --conf

enter image description here

Вариант 3:
Если вы используете, AWS Cli, вы можете попробовать ниже ... https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html

Забавно, что они упоминаются в документах не установить сообщение, как показано ниже. но я не знаю, почему это было разоблачено.

enter image description here

Подводя итог: я лично предпочитаю option1 , так как у вас есть программное управление.

0 голосов
/ 05 июня 2019

Перейдите к клеевой консоли и отредактируйте свою работу следующим образом:

Glue> Jobs> Edit your Job> Библиотеки сценариев и параметры задания (необязательно)> Параметры задания

Установите следующее:

ключ: --conf значение:

spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version = 2

...