我遇到了一个问题,当试图解析数据工厂中的配置文件的数据。我使用的是配置文件,这些项在复制活动中被调用。我们可以从数据集中参数化'列分隔符'字段,所以我使用文件中的值(因为在某些情况下是';'和在其它'\t ')。当分隔符是分号时,可以很好地工作,但是当它是\t时,我得到以下错误:
复制活动不支持多字符或无列分隔符。
当我检查进入该字段的值时,我看到该值不是来自文件(\t
)的值,而是\\t
。你知道为什么会有这种行为吗?或者是否有一个转义字符。我也试过ASCII码(\0009
),我得到了同样的错误-它不知道转换它。多谢了!
5条答案
按热度按时间jv2fixgn1#
你能试着传递一个从文本编辑器复制的真实的的制表符吗,比如- ' '。
这已被证明是有效的。如果分隔符中没有参数化,您可以通过GUI甚至代码来完成。
flseospp2#
简单地说,在UI中输入选项卡值时,不要使用
\t
,而是使用" "
。在空引号之间,我粘贴了一个实际的制表符。ctzwtxfj3#
根据官方文档中的说明,目前只支持
mapping data flow
多字符分隔符,不支持Copy activity
。您可以尝试使用
mapping data flows
,它也是ADF中设计的数据转换。请在这里查看更多详情:https://learn.microsoft.com/en-us/azure/data-factory/concepts-data-flow-overview有任何问题,请告诉我。
mzsu5hc04#
您应该使用t而不是\t。数据工厂将t替换为\t本身。这就是为什么\t最后是\t
vd2z7a6w5#
我想我找到了一个解决这个问题的办法。到目前为止,所有的答案都不适合我。
点击分隔符参数文本框下的“添加动态内容”打开“Pipeline expression builder”。
由于base64中的制表符是CQ==,我们可以使用以下函数:
@base64ToString('CQ==')