You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue动态DataFrame中resolveChoice无法转换嵌套多类型列怎么办?

解决AWS Glue动态DataFrame嵌套列类型转换问题

你遇到的问题是因为resolveChoice的路径指定错误,Offset并非顶层字段,而是嵌套在dec数组的element结构体中,必须指定完整的嵌套路径才能生效。

修正后的代码

df = df.resolveChoice(specs=[("dec.element.Offset", "cast:long")])

原理说明

原代码仅指定了Offset,Glue无法定位到嵌套在数组结构体中的该字段,因此不会执行类型转换。使用dec.element.Offset作为路径,能精准定位到目标字段,将其所有可选类型统一转换为long。

验证效果

执行修正后的代码后,输出Schema会符合你的期望:

dec: array
    -- element: struct
        |-- Offset: long

额外注意事项

如果存在无法转换为long的字符串值(比如非数字内容),Glue会将其转换为null。如果需要自定义处理这类异常值,可以结合map函数遍历数组元素,对Offset字段做更精细的转换逻辑。

内容的提问来源于stack exchange,提问作者Manish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:07:05