write_dynamic_frame.from_options 生成多个零件文件
Posted
技术标签:
【中文标题】write_dynamic_frame.from_options 生成多个零件文件【英文标题】:write_dynamic_frame.from_options generates multiple part fles 【发布时间】: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方法的数据框是
我错过了什么?
【问题讨论】:
【参考方案1】:那是因为 Spark 使用多个 worker 运行代码。如果你想生成一个简单的文件,你必须使用coalesce
函数或者定义数据块来定义worker的数量。
【讨论】:
以上是关于write_dynamic_frame.from_options 生成多个零件文件的主要内容,如果未能解决你的问题,请参考以下文章