AWS Glue - unnest 或 relationalize 后不能 select 字段
AWS Glue - Can't select fields after unnest or relationalize
在 AWS S3 中,我有 json 文档,我用 AWS Glue 的 create_dynamic_frame.from_options("s3" ...)
读入了文档,DynamicFrame.printSchema() 向我展示了这个,它与文档的架构相匹配:
root
|-- updatedAt: string
|-- json: struct
| |-- rowId: int
然后我 unnest()
或 relationalize()
(都尝试过)将 DynamicFrame 转换为新的 dyF,然后 .printSchema()
向我展示了这个,这似乎是正确的未嵌套:
root
|-- updatedAt: string
|-- json.rowId: int
问题是我似乎无法使用嵌套字段。
dyF.select_fields(["updatedAt"])
会工作并给我一个带有“updatedAt”字段的 dyF。
但是
dyF.select_fields(["json.rowId"])
给了我一个空的 dyF。
我做错了什么?
解决方案是在列名周围使用反引号。
示例:.select_fields(["journalId", "`json.rowId`"])
在 AWS S3 中,我有 json 文档,我用 AWS Glue 的 create_dynamic_frame.from_options("s3" ...)
读入了文档,DynamicFrame.printSchema() 向我展示了这个,它与文档的架构相匹配:
root
|-- updatedAt: string
|-- json: struct
| |-- rowId: int
然后我 unnest()
或 relationalize()
(都尝试过)将 DynamicFrame 转换为新的 dyF,然后 .printSchema()
向我展示了这个,这似乎是正确的未嵌套:
root
|-- updatedAt: string
|-- json.rowId: int
问题是我似乎无法使用嵌套字段。
dyF.select_fields(["updatedAt"])
会工作并给我一个带有“updatedAt”字段的 dyF。
但是
dyF.select_fields(["json.rowId"])
给了我一个空的 dyF。
我做错了什么?
解决方案是在列名周围使用反引号。
示例:.select_fields(["journalId", "`json.rowId`"])