首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Glue write拼花带分区

AWS Glue write拼花带分区
EN

Stack Overflow用户
提问于 2018-03-07 07:28:44
回答 2查看 10.9K关注 0票数 11

我可以写入拼图格式,并按如下所示的列进行分区:

代码语言:javascript
复制
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做到这一点。

代码语言:javascript
复制
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的一部分传递,因为亚马逊网络服务文档说拼花胶水不支持任何格式选项,但这不起作用。

这是可能的吗?如何实现?至于这样做的原因,我认为这是工作书签工作的需要,因为这对我来说是不起作用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-19 06:57:55

来自AWS支持(转述一下):

到目前为止,Glue在写入拼图时不支持partitionBy参数。不过,这项工作仍在进行中。

要将作业书签功能与S3源代码一起使用,需要使用Glue API来写入parquet。

因此,到今天为止,还不能对拼图文件进行分区并启用作业书签功能。

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

代码语言:javascript
复制
glue_context.write_dynamic_frame.from_options(
frame = projectedEvents,
connection_options = {"path": "$outpath", "partitionKeys": ["type"]},
format = "parquet")

这个选项可能一直存在,而我和AWS支持人员都忽略了它,或者它是最近才添加的。无论哪种方式,现在看起来都是可能的。

票数 10
EN

Stack Overflow用户

发布于 2020-01-17 06:42:31

我使用我的dataframe中的一些列作为partionkeys对象:

代码语言:javascript
复制
glueContext.write_dynamic_frame \
    .from_options(
        frame = some_dynamic_dataframe, 
        connection_type = "s3", 
        connection_options =  {"path":"some_path", "partitionKeys": ["month", "day"]},
        format = "parquet")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49141713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档