AWS Glue Scala,输出一个带分区的文件

AWS Glue Scala,输出一个带分区的文件,scala,pyspark,data-science,etl,aws-glue,Scala,Pyspark,Data Science,Etl,Aws Glue,用python解决方案解决这一问题有很多问题,但在寻找胶水方面存在问题。我明白这两种方法都是利用pyspark的,但当我尝试将基于python的解决方案应用于Scala时,会遇到编译错误。我既想问这个问题,又想为其他有同样问题的人提供一个简单的参考 基本上我是这样生成输出的 val datasource0 = DynamicFrame(data, glueContext).withName("datasource0").withTransformationContext(&q

用python解决方案解决这一问题有很多问题,但在寻找胶水方面存在问题。我明白这两种方法都是利用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
上使用函数
重新分区。分区的数量等于输出文件的数量。关于这方面的更多信息


代码示例:val-repartitionedDataSource1=datasource1.repartition(1)

对于以下数据帧定义val-datasource0=DynamicFrame(data,glueContext).withName(“datasource0”).withTransformationContext(“datasource0”)我在哪里使用重新分区函数?它是否像var repartateddata=repartition(datasource0)一样也来自库,还是像一个受支持的函数?哦,没关系。对于未来的用户,这就是您如何做的var repartitionedDataSource1=datasource1。repartition(1)谢谢Robert!!!没问题,罗纳德,我会在我的答案中加上一行代码:)