AWS Glue Scala,输出一个带分区的文件
AWS Glue Scala, output one file with partitions
有很多问题可以通过 python 解决方案来解决这个问题,但是在寻找 Glue 的任何东西时都遇到了问题。了解两者都利用 pyspark,但是当我尝试将基于 python 的解决方案改编为 Scala 时,我遇到了编译错误。既想提出问题又想为遇到相同问题的其他人提供简单参考。
基本上我是这样生成输出的
val datasource0 = DynamicFrame(data, glueContext).withName("datasource0").withTransformationContext("datasource0")
val datasink2 = glueContext.getSinkWithFormat(connectionType = "s3", options = JsonOptions(Map("path" -> "s3://sf_path")),format = "parquet", transformationContext = "datasink2").writeDynamicFrame(datasource0)
Pyspark 是 pyspark,它为此转换生成多个输出文件。如何修改我的作业以仅创建一个输出文件?
您可以在 Scala DynamicFrame
上使用函数 repartition
。分区数等于输出文件数。有关 here.
的更多信息
代码示例:val repartitionedDataSource1 = datasource1.repartition(1)
有很多问题可以通过 python 解决方案来解决这个问题,但是在寻找 Glue 的任何东西时都遇到了问题。了解两者都利用 pyspark,但是当我尝试将基于 python 的解决方案改编为 Scala 时,我遇到了编译错误。既想提出问题又想为遇到相同问题的其他人提供简单参考。
基本上我是这样生成输出的
val datasource0 = DynamicFrame(data, glueContext).withName("datasource0").withTransformationContext("datasource0")
val datasink2 = glueContext.getSinkWithFormat(connectionType = "s3", options = JsonOptions(Map("path" -> "s3://sf_path")),format = "parquet", transformationContext = "datasink2").writeDynamicFrame(datasource0)
Pyspark 是 pyspark,它为此转换生成多个输出文件。如何修改我的作业以仅创建一个输出文件?
您可以在 Scala DynamicFrame
上使用函数 repartition
。分区数等于输出文件数。有关 here.
代码示例:val repartitionedDataSource1 = datasource1.repartition(1)