Я не смог понять это, но я пытаюсь использовать коммиттер прямого вывода с AWS Glue:
spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2
Можно ли использовать эту конфигурацию с AWS Glue?
это полезно? какие-либо вопросы, с которыми я могу помочь? пожалуйста, примите ответ / проголосуйте, если вы согласны. Спасибо!
@RamGhadiyaram У меня не было возможности протестировать. Я обязательно оставлю отзыв и/или проверю ваш ответ, если это действительно решение.





Опция 1 :
Glue использует искровой контекст, вы также можете настроить конфигурацию hadoop на клей aws. поскольку внутренний динамический фрейм является своего рода фреймом данных.
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
Чтобы доказать, что эта конфигурация существует ....
Отладка в питоне:
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
Вариант 3:
Если вы используете aws cli, вы можете попробовать ниже...
https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html
Забавно, что они упоминаются в сообщении не устанавливайте документации, как показано ниже. но я не знаю, почему это было выставлено.
To sum up : I personally prefer option1 since you have programmatic control.
Перейдите в консоль задания клея и отредактируйте задание следующим образом:
Glue> Jobs > Edit your Job> Script libraries and job parameters (optional) > Job parameters
Установите следующее:
key: --conf value:
spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2
moku просто проверьте мой ответ, надеюсь, он вам поможет! одна вещь: spark.hadoop не нужен, так как мы напрямую используем hadoopConfiguration, поэтому конфигурация будет
mapreduce.fileoutputcommitter.algorithm.versionвместоspark.hadoop.mapreduce.fileoutputcommitter.algorithm.version