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

Redshift Spectrum查询失败:解析的清单不是有效JSON对象

问题分析与解决

你遇到的Redshift Spectrum查询报错ERROR: Parsed manifest is not a valid JSON object,核心原因是系统错误地将CSV文件当作JSON格式的清单文件(manifest)来解析,而非直接读取CSV数据。以下是针对性的排查和解决步骤:

排查方向1:检查Glue表的存储格式配置

  • 打开Glue控制台,找到对应表,查看存储描述符(StorageDescriptor)的以下配置:
    • 输入格式(InputFormat):必须为org.apache.hadoop.mapred.TextInputFormat
    • 输出格式(OutputFormat):必须为org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
    • SerDe信息(SerdeInfo):CSV对应的SerDe应为org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe,同时需配置正确的列分隔符(如field.delim = ',')、是否跳过表头(如skip.header.line.count = 1)
  • 若配置错误,可通过Glue控制台编辑表,或用AWS CLI修正:
    aws glue update-table --database-name your_db_name --table-input file://updated-table-config.json
    

排查方向2:确认Glue表的S3路径指向

  • 确保Glue表的Location字段指向的是CSV文件所在的子文件夹前缀,而非单个清单文件(如.manifest结尾的文件)
  • 检查S3路径下是否存在非CSV格式的文件(如清单文件、日志文件),爬虫可能误将这些文件纳入表的数据源,导致Spectrum解析混乱

排查方向3:验证Redshift外部模式关联

  • 执行以下SQL确认外部模式关联的Glue数据库正确:
    DESCRIBE SCHEMA "dw"."extSchemaNm";
    
  • 若关联的Glue数据库错误,需重新创建外部模式:
    CREATE EXTERNAL SCHEMA extSchemaNm
    FROM DATA CATALOG
    DATABASE 'your-glue-db-name'
    IAM_ROLE 'arn:aws:iam::your-account-id:role/your-redshift-spectrum-role';
    

排查方向4:直接测试CSV文件可读性

  • 用Redshift的S3_SCAN函数直接读取单个CSV文件,验证文件本身格式是否正常:
    SELECT * FROM S3_SCAN('s3://your-bucket/path/to/your-file.csv', 'csv');
    
  • 若该查询成功,说明问题完全出在Glue表的配置上,需重点修正表的存储格式配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:40:12