在GCP Data Fusion中映射Facebook Graph API嵌套JSON字段报错求助
问题原因及解决方法
问题根源
你遇到的错误是因为Data Fusion里定义的schema中,clicks字段被设为了字符串(或允许为null的字符串类型),但实际Facebook API返回的clicks是一个包含对象的数组。错误提示里的union type: ["string","null"]就是指schema预期的类型,而BEGIN_ARRAY说明实际数据是数组,类型不匹配导致转换失败。
解决步骤
- 打开Data Fusion的工作流,找到处理JSON转换的组件(比如JSON Parser或Schema Validator),查看当前的schema定义
- 将
clicks字段的类型从string或union<string, null>修改为数组类型,具体结构对应返回的嵌套对象:array<record< clicks:string, date_start:string, date_stop:string >> - 确认HTTP插件的响应路径配置:如果之前是直接映射
clicks字段,现在要确保路径指向这个数组(比如insights.data.clicks,如果是完整路径的话),不要错误地指向数组里的单个clicks值 - 重新运行工作流,测试转换是否正常
如果之前的工作流是基于旧版Facebook API响应(当时clicks是单个字符串值),这次API返回结构变更才导致的问题,更新schema后就能适配新的响应格式。
内容的提问来源于stack exchange,提问作者Marcin Stańczak
相关产品推荐
相关产品推荐

