Glue dynamic data frame相关的的语法错误?

0

【以下的问题经过翻译处理】 我尝试使用 Glue ETL 将嵌套的 JSON 数据转换为 Parquet 格式。这个方法是有效的,但由于进行了采样,它无法确定某些字段的数据类型并使用 struct 表示所有可能的值,从而改变了架构。

我尝试使用 ResolveChoice 来强制使用一种类型而不是 struct,但我一直遇到语法错误。我按照文档操作,但仍然无法搞清楚。这是我的代码,有人能帮帮忙吗?什么是正确的语法?它是否支持嵌套数据?

resolvechoice2 = ResolveChoice.apply(frame = applymapping1, specs = [("in_reply_to_user_id", "project:long"),("user.id", "project:long"),("quoted_status.user.id", "project:long"),("entities.user_mentions.element.id", "project:long"),("entities.media.element.source_user_id", "project:long"),("retweeted_status.user.id", "project:long"),("extended_entities.media.element.source_user_id", "project:long")]), transformation_ctx = "resolvechoice2")

语法错误:Syntax Error: File "/tmp/g-7d4adc26f6e5bb15ba8d86e7b4fced4ba08ca29d-6847579850030189659/script_2019-04-30-06-11-30.py", line 30 resolvechoice2 = ResolveChoice.apply(frame = applymapping1, specs = [("in_reply_to_user_id", "project:long"),("user.id", "project:long"),("quoted_status.user.id", "project:long"),("entities.user_mentions.element.id", "project:long"),("entities.media.element.source_user_id", "project:long"),("retweeted_status.user.id", "project:long"),("extended_entities.media.element.source_user_id", "project:long")]), transformation_ctx = "resolvechoice2") SyntaxError: invalid syntax

profile picture
专家
已提问 5 个月前35 查看次数
1 回答
0

【以下的回答经过翻译处理】 ``` dynamicframe0_with_cast = datasource0.resolveChoice( specs = [("in_reply_to_user_id", "cast:long"), ("user.id", "cast:long"), ("quoted_status.user.id", "cast:long"), ("entities.user_mentions[].id", "cast:long"), ("entities.media[].source_user_id", "cast:long"), ("retweeted_status.user.id", "cast:long"), ("extended_entities.media[].source_user_id", "cast:long")])

在转换嵌入式集合时,必须使用“ []”来指定数组类型,不要使用在printSchema输出中看到的“.element”。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则