Synapse Pipeline中Dataflow无法正确读取多字符分隔符CSV文件
解决Dataflow读取多字符分隔符CSV的实操方案
- 绕开Dataflow不支持多字符分隔符的限制:把源数据集改成纯文本格式,不要选CSV。行分隔符设成一个文件内容里绝对不会出现的特殊字符(比如
\u0000空字符),这样整个文件会被读成一行名叫raw_content的文本字段。 - 拆分行数据:添加Derived Column转换,用
split(raw_content, '&|')把文本按你的行分隔符拆成数组,命名为rows_array。接着用Flatten转换把数组展开成单独的行。 - 拆分列数据:给每行添加Derived Column转换,用
split(currentRow, '+|')按列分隔符拆成数组,命名为cols_array。最后用Select转换,把数组里的元素对应成具体列,比如cols_array[0]对应第一列、cols_array[1]对应第二列即可。 - 处理乱码问题:预览出现矩形乱码时,检查文件实际编码(UTF-8/GBK等),在源数据集的文本格式设置里指定对应编码,确保和文件一致。同时要确认分隔符输入完全准确,没有多余空格或转义错误。
Copy Data能正常读取是因为它内部对多字符分隔符的处理逻辑和Dataflow不同,但如果你要在Dataflow内完成读取和转换,按照上面的文本拆分流程操作就能解决问题。
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

