gpt4 book ai didi

amazon-web-services - AWS Glue编写带分区的拼花地板

转载 作者:行者123 更新时间:2023-12-04 15:06:58 26 4
gpt4 key购买 nike

我能够写成 Parquet 格式,并按如下所示进行分区:

jobname = args['JOB_NAME']
#header is a spark DataFrame
header.repartition(1).write.parquet('s3://bucket/aws-glue/{}/header/'.format(jobname), 'append', partitionBy='date')

但是我无法使用Glue的DynamicFrame做到这一点。
header_tmp = DynamicFrame.fromDF(header, glueContext, "header")
glueContext.write_dynamic_frame.from_options(frame = header_tmp, connection_type = "s3", connection_options = {"path": 's3://bucket/output/header/'}, format = "parquet")

我已尝试将 partitionBy作为 connection_options dict的一部分进行传递,因为AWS文档对 Parquet 说Glue不支持任何格式选项,但这没有用。

这有可能吗?至于这样做的原因,我认为工作书签需要工作,因为这目前对我而言不起作用。

最佳答案

从AWS支持(换个说法):

到目前为止,Glue在写入 Parquet 时不支持partitionBy参数。不过,这仍在研究中。

要使工作书签功能与S3源一起使用,需要使用Glue API写入拼花地板。

因此,到目前为止,无法对 Parquet 文件进行分区并启用作业书签功能。

编辑:今天(3/23/18)我在documentations中找到了:

glue_context.write_dynamic_frame.from_options(
frame = projectedEvents,
connection_options = {"path": "$outpath", "partitionKeys": ["type"]},
format = "parquet")

该选项可能一直存在,我本人和AWS支持人员都错过了它,或者只是最近才添加的。无论哪种方式,似乎现在都有可能。

关于amazon-web-services - AWS Glue编写带分区的拼花地板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com