Шаг зажигания 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);