EMR火花步骤并将输出合并到一个文件中

时间:2017-10-24 02:36:33

标签: spark-dataframe emr parquet

我正在尝试emr spark step。我有一个输入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 个答案:

答案 0 :(得分:1)

默认情况下,每个分区生成一个输出文件。 你应该能够通过repartition(1)来实现你想要的目标。

像这样: repartition(1).write().mode(SaveMode.Append).parquet(output);