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

Azure Data Factory如何使用字符串作为行分隔符解析.dat文件?

在Azure Data Factory中使用字符串作为行分隔符解析.dat文件

Azure Data Factory的常规数据集配置里,行分隔符仅支持单个字符,这就是你遇到每遇到'T'就拆分行的原因——系统会把你输入的字符串'TASK'的第一个字符'T'当成行分隔符。要实现按字符串'TASK'拆分并得到3条以'TASK'开头的行,推荐用以下方案:

方案一:使用数据流(Data Flow)处理(推荐)

这是最灵活且无需额外预处理的方式:

  1. 源数据集配置:将.dat文件作为源,不指定行分隔符(或设置为文件中不存在的单个字符),让ADF把整个文件读成单一行数据。
  2. 添加派生列转换:创建一个新列,用split()函数将整行内容按'TASK'拆分:
    split($$,'TASK')
    
    示例内容拆分后会生成数组:["TRY 1<em>2</em>3 ~ 9<em>4</em>6 ", " 34T<em>89YT</em>56 ", " 36<em>890</em>5T67 ", " 365<em>890PT6</em>5678"]
  3. 添加展开(Flatten)转换:选择上一步生成的数组列,将其展开为多行数据。
  4. 添加过滤转换:过滤掉空行或仅包含空白字符的行,同时排除原文件开头的非'TASK'前缀行。过滤条件可设为:
    trim(<展开后的列名>) != ''
    
  5. 添加派生列转换:为每个过滤后的行添加'TASK'前缀,得到最终目标行内容:
    'TASK' + trim(<展开后的列名>)
    
  6. 后续处理:可继续添加转换清洗数据,或直接输出到目标存储/数据库。

方案二:预处理文件(备选)

如果无法使用数据流,可通过Azure Function、逻辑应用或本地脚本先预处理.dat文件:

  • 将文件中所有'TASK'字符串替换为唯一的、文件中不存在的单个特殊字符(比如ASCII控制字符\u0001)。
  • 在ADF数据集的行分隔符设置中指定这个特殊字符,即可正确拆分出目标行。

处理后你将得到预期的3条数据:

TASK 34T89YT56
TASK 368905T67
TASK 365890PT65678

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:02:44