【问题标题】:write_dynamic_frame.from_options generates multiple part fleswrite_dynamic_frame.from_options 生成多个零件文件
【发布时间】:2021-11-19 21:25:21
【问题描述】:

我是 AWS 胶水世界的新手。我正在尝试将 avro 文件写入 S3。数据被写入 S3 文件夹,但这不是我想要的,而是像这样写入多个部分文件:

run-1637354712957-part-r-00000
run-1637354712957-part-r-00001
run-1637354712957-part-r-00002
run-1637354712957-part-r-00003
run-1637354712957-part-r-00004
run-1637354712957-part-r-00005
run-1637354712957-part-r-00006
run-1637354712957-part-r-00007
run-1637354712957-part-r-00008

代码如下:

def write_to_s3(data_frame, s3_path, file_name, glue_context):
    connection_options = {'path': f's3://{s3_path}'}

    glue_context.write_dynamic_frame.from_options(
        frame=DynamicFrame.fromDF(data_frame, glue_context, file_name),
        connection_type='s3',
        connection_options=connection_options,
        format='avro'
    )

传递给write_to_s3方法的数据框是

我错过了什么?

【问题讨论】:

    标签: amazon-web-services pyspark aws-glue


    【解决方案1】:

    那是因为 Spark 使用多个 worker 运行代码。如果你想生成一个简单的文件,你必须使用coalesce函数或者定义数据块来定义worker的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多