如何定义含嵌入式结构体的AWS Glue表结构?解决Kinesis转换报错
Kinesis Firehose转Parquet时Glue表结构定义报错解决方法
在通过Kinesis Firehose将JSON格式转换为Parquet格式的场景中,需在AWS Glue里定义符合要求的表结构。AWS控制台给出的STRUCT类型定义示例如下:
STRUCT <
employer: STRING,
id: BIGINT,
address: STRING
但按此格式创建结构并启动Kinesis流程时,触发如下报错:
The schema is invalid. Error parsing the schema: Error: type expected at the position 16 of 'struct<software: string, session_id: string>' but ' string' is found."
解决步骤
- 清理字段定义的多余空格:报错明确指出位置存在多余空格问题,需确保字段名后的
:与类型之间无空格,将software: string修正为software:string - 统一类型关键字大小写:Glue的STRUCT类型定义要求类型关键字(如STRING、BIGINT)使用大写,避免小写
string引发解析异常 - 检查语法完整性:确保
<、>前后无多余空格,字段间用英文逗号分隔,最后一个字段末尾不要添加多余逗号
正确示例
紧凑格式:
STRUCT<employer:STRING,id:BIGINT,address:STRING>
带换行的规范格式:
STRUCT< employer:STRING, id:BIGINT, address:STRING >
内容的提问来源于stack exchange,提问作者Kanu
相关产品推荐
相关产品推荐

