Шаг зажигания EMR и объединить вывод в один файл

Я пытаюсь EMR искра шаг. У меня есть каталог ввода S3. Которые имеют несколько файлов: f1,f2,f3

Я добавляю шаг искры так:

aws emr --region us-west-2 add-steps  --cluster-id foo --steps '[{"Args":["spark-submit","--deploy-mode","cluster","--class","JsonToDataToParquetJob","s3://foo/My.assembly.jar","s3://inputDir/","output/"],"Type":"CUSTOM_JAR","ActionOnFailure":"CONTINUE","Jar":"command-runner.jar","Properties":"","Name":"Spark application"}]'

Который имеет следующий код:

delimitedData.write.mode(SaveMode.Append).parquet(output)

Проблема, с которой я сталкиваюсь: у меня несколько выходных файлов. Но то, что я ищу, это один выходной файл в каталоге. Как я могу этого достичь?

1 ответ

Решение

По умолчанию выходной файл создается для каждого раздела. Вы должны быть в состоянии достичь того, что вы хотите, выполнив repartition(1),

как это:repartition(1).write().mode(SaveMode.Append).parquet(output);

Другие вопросы по тегам