【问题标题】:AWS Glue Scala, output one file with partitionsAWS Glue Scala,输出一个带分区的文件
【发布时间】:2021-04-23 17:17:31
【问题描述】:

使用 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 pyspark data-science etl aws-glue


    【解决方案1】:

    您可以在 Scala DynamicFrame 上使用函数 repartition。分区数等于输出文件数。更多关于here的信息。

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

    【讨论】:

    • 对于以下数据框定义 val datasource0 = DynamicFrame(data, glueContext).withName("datasource0").withTransformationContext("datasource0") 我在哪里利用重新分区功能?是像 var repatriatedData = repartition(datasource0) 还是来自库还是像受支持的函数?
    • 哦,没关系。对于未来的用户,这就是你的做法 var repartitionedDataSource1 = datasource1.repartition(1) 谢谢罗伯特!!!
    • 没问题罗纳德,我会在我的答案中添加这行代码:)
    猜你喜欢
    • 2019-10-11
    • 2018-07-24
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-19
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多