azure 数据工厂中的制表符分隔符

wljmcqd8  于 2023-05-18  发布在  其他
关注(0)|答案(5)|浏览(159)

我遇到了一个问题,当试图解析数据工厂中的配置文件的数据。我使用的是配置文件,这些项在复制活动中被调用。我们可以从数据集中参数化'列分隔符'字段,所以我使用文件中的值(因为在某些情况下是';'和在其它'\t ')。当分隔符是分号时,可以很好地工作,但是当它是\t时,我得到以下错误:
复制活动不支持多字符或无列分隔符。
当我检查进入该字段的值时,我看到该值不是来自文件(\t)的值,而是\\t。你知道为什么会有这种行为吗?或者是否有一个转义字符。我也试过ASCII码(\0009),我得到了同样的错误-它不知道转换它。多谢了!

jv2fixgn

jv2fixgn1#

你能试着传递一个从文本编辑器复制的真实的的制表符吗,比如- ' '。
这已被证明是有效的。如果分隔符中没有参数化,您可以通过GUI甚至代码来完成。

flseospp

flseospp2#

简单地说,在UI中输入选项卡值时,不要使用\t,而是使用" "。在空引号之间,我粘贴了一个实际的制表符。

ctzwtxfj

ctzwtxfj3#

根据官方文档中的说明,目前只支持mapping data flow多字符分隔符,不支持Copy activity

您可以尝试使用mapping data flows,它也是ADF中设计的数据转换。请在这里查看更多详情:https://learn.microsoft.com/en-us/azure/data-factory/concepts-data-flow-overview
有任何问题,请告诉我。

mzsu5hc0

mzsu5hc04#

您应该使用t而不是\t。数据工厂将t替换为\t本身。这就是为什么\t最后是\t

vd2z7a6w

vd2z7a6w5#

我想我找到了一个解决这个问题的办法。到目前为止,所有的答案都不适合我。
点击分隔符参数文本框下的“添加动态内容”打开“Pipeline expression builder”。

由于base64中的制表符是CQ==,我们可以使用以下函数:
@base64ToString('CQ==')

相关问题