2017-10-24 16 views
1

emrのスパークステップを試しています。私は入力s3ディレクトリがあります。これは複数のファイルがあります:F1、F2、F3EMRのスパークステップと出力を1つのファイルにマージする

私はこのようなスパーク工程を追加しています:

コードを以下ました
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) 

私が直面しています問題は次のとおりです。 Iを複数の出力ファイルを持っています。しかし、私が探しているのは、ディレクトリ内の単一の出力ファイルです。それをどうすれば実現できますか?

答えて

1

デフォルトでは、パーティションごとに出力ファイルが生成されます。 repartition(1)を実行することで、あなたが望むものを達成できるはずです。

このように: repartition(1).write().mode(SaveMode.Append).parquet(output);

関連する問題