Azure Data Factory解析CSV中JSON列时遇复杂类型写入问题
解决Azure Data Factory从CSV的JSON列提取值写入CSV接收器的问题
问题原因
你用Parse活动后输出的newCol是复杂类型(JSON对象),而CSV接收器仅支持字符串、数字等简单数据类型,因此触发了错误提示。
两种可行解决方法
方法一:直接用派生列活动(推荐,更简洁)
无需使用Parse活动,直接在数据流中添加派生列活动:
- 添加新列(比如
name),输入表达式:json(c3).name,将列类型设置为字符串 - 若要提取年龄,添加新列
age,输入表达式:json(c3).age,列类型设置为整数 - 后续用选择活动保留需要的列(比如
c1、c2、name、age),再连接到CSV接收器即可
方法二:结合Parse活动+选择活动
如果一定要用Parse活动,需额外步骤提取单个字段:
- Parse活动设置:
- 格式选择
JSON,勾选每行一个文档 - 列设置里,输出列类型设为复杂JSON对象(比如
newCol的类型定义为{name: string, age: int})
- 格式选择
- 添加选择活动:
- 在映射中,将
newCol.name映射为新列name,newCol.age映射为新列age - 移除原来的
newCol列,只保留简单类型的列
- 在映射中,将
- 将选择活动的输出连接到CSV接收器,此时所有列都是简单类型,可正常写入
内容的提问来源于stack exchange,提问作者Bastl
相关产品推荐
相关产品推荐

