Azure Data Factory数据流仅处理每个文件单行数据的问题求助
Azure Data Factory 多行JSON处理仅输出单行的解决方法
核心问题排查
你遇到的仅输出单行的问题,大概率是源/输出数据集的JSON格式配置错误,或是处理流程绕远路导致的意外数据丢失。以下是针对性的解决步骤:
步骤1:修正源数据集的JSON格式配置
根据你的文件类型精准匹配配置:
- 如果文件是完整JSON数组(如
[{"date":...}, {"date":...}]):- 打开源数据集「连接」选项卡,JSON格式选数组
- 根路径填
$(表示整个文件为数组根节点)
- 如果文件是每行一个独立JSON对象(如一行一个
{"date":...}):- JSON格式选每行一个文档
- 取消勾选「单文档」选项
步骤2:简化attributes字段处理流程(替换原有三步)
你原有的转字符串再解析操作完全没必要,ADF数据流直接支持对象字段修改,一步移除userID:
- 删除原「派生列」「解析」转换,保留「选择」转换
- 添加派生列转换,创建新字段
new_attributes,表达式写:@remove(attributes, 'userID') - 在「选择」转换中:
- 删除原
attributes字段 - 将
new_attributes重命名为attributes
- 删除原
步骤3:验证数据流数据完整性
在数据流编辑器中,点击每个转换节点的数据预览按钮,检查:
- 源节点预览是否包含所有文件的全部数据行
- 派生列、选择转换后的预览行数是否与源一致,避免误加过滤条件
步骤4:修正输出数据集配置
确保输出不会合并为单行:
- 若输出多行JSON对象:JSON格式选每行一个文档
- 若输出JSON数组:选数组,且不要勾选「单个文件」(除非确实需要合并为一个数组文件)
- 检查输出「分区」设置,避免固定分区导致数据合并
额外排查点
- 确认源文件无损坏:打开源JSON文件,检查是否有语法错误、空行或特殊字符导致ADF仅读取第一行
- 排查数据流中是否有隐藏的「过滤」「聚合」转换,意外删减数据
内容的提问来源于stack exchange,提问作者Fasan K
相关产品推荐
相关产品推荐

