Azure Data Flow 派生列字符串写入接收器报类型转换错误问题
问题原因分析
- 核心原因是接收器预期的字段类型和派生列实际输出的类型不匹配。你配置的接收器对应目标字段的预设类型为
ArrayType(StructType(StructField(url,StringType,true)),false),也就是存储图片URL的结构体数组类型,但你写的派生列表达式最终输出的是普通字符串(包括拼接了类型后缀的文本、兜底的N/A字符串),ADF没有预设字符串到该结构体数组类型的自动转换规则,因此写入时触发报错。 - 预览正常的原因是:Azure Data Flow的派生列预览功能只会校验表达式语法合法性、执行计算逻辑输出结果,不会强校验输出类型是否和接收器的目标schema匹配,因此预览阶段不会触发类型校验错误,仅在实际写入执行阶段才会校验类型兼容性。
- 额外的常见诱因:如果你没有手动修改派生列的输出类型,且上游源数据中对应图片字段原本就是数组类型,ADF的类型推断可能没有识别到你已经通过
toString将输出转为字符串,接收器仍沿用了上游的数组类型配置,也会触发该类错误。
内容的提问来源于stack exchange,提问作者Java user
相关产品推荐
相关产品推荐

