TLDR:为什么Azure数据工厂数据流不允许您没有转义符?
我们有来自错误源的错误数据,这些数据不太可能最终更新(这是我最好的表述方式)。他们有多个列,其中列中的值为01F \或8239 \,反斜杠在其规范中写为该值的一部分,而不是像标准格式那样在整个世界中都被视为转义字符。 / p>
文件的总体设置是用逗号分隔,每列的内容都在“”中,并且我们具有所有常规的换行符。只是反斜杠不符合标准。例如
"Column 1","Column 2","Column 3","Column 4"
"John","01F\","34","NY"
"Jane","3K","8239\","CA"
|---------------------|------------------|------------------|------------------|
| Column 1 | Column 2 | Column 3 | Column 4 |
|---------------------|------------------|------------------|------------------|
| "John" | "01F\" | "34" | "NY" |
|---------------------|------------------|------------------|------------------|
| "Jane" | "3K" | "8239\" | "CA" |
|---------------------|------------------|------------------|------------------|
但是,当我们随后将该数据集添加到数据流中并尝试在其中预览数据时,会收到一个错误,即数据流中不能没有转义字符,并且引号字符不应为引号字符当我们没有转义字符时。
如果我们尝试返回并且也未设置引号字符(我们实际上不希望这样做,只是为了测试它是否可以工作),我们将得到一个错误,即数据流无法没有转义或引号字符。
ORIGINAL working code for column: trim(toString($$))
ATTEMPTED WORKAROUNDS:
replace(trim(toString($$)),'\','-')
trim(replace(toString($$),'\','-')
trim(toString(replace($$),'\','-'))
答案 0 :(得分:0)
对于“分隔文本”源,不允许您选择带有“无转义字符”的引号字符。您可以尝试解决方法选项
答案 1 :(得分:0)
我只是想分享一个微软论坛上的用户提供的答案,最终可以解决问题。
我们在数据集设置中将转义字符从\更改为^(只有在确认^字符在任何地方都没有以任何方式使用之后,才进行此操作)。我们没有在列的映射中应用replace函数,因为不幸的是我们需要在这些列中保留\字符。但这确实有效,并且我们的数据现在正在按照我们需要的方式流动(即使这些不是数据管理的最佳做法)。