我正在实现一个管道,将CSV文件从一个文件夹移动到数据湖中的另一个文件夹,条件是CSV文件以UTF8编码。是否可以直接在数据工厂/数据流中检查csv文件的编码?实际上,在数据集的连接条件中设置编码。在这种情况下,如果csv文件的编码不同,会发生什么?如果csv文件使用错误的编码暂存,在数据库级别会发生什么?先谢谢你。
qkf9rpyu1#
只是现在,我们不能直接在数据工厂/数据流中检查文件编码。我们必须预先设置读/写测试文件的编码类型:
参考:https://learn.microsoft.com/en-us/azure/data-factory/format-delimited-text#dataset-propertiesData Factory默认文件编码为UTF-8。就像@wBob说的,你需要在代码级实现编码检查,比如Azure Function或Notebook等。给这些特工打电话。HTH。
UTF-8
5m1hhzi42#
可以通过将文件读取为不带分隔符的UTF8行并检查前两个字节来检测UTF 16,因为它们将单独可见。如果它们的十六进制值是FFFE或FEFF,则文件是16位UTF。在维基百科上搜索“字节顺序标记”,看看为什么会这样。不幸的是,对于ANSI,UTF8和其他格式,因为它们没有这样的标记,或者如果文件实际上是UTF8,它将在加载过程中消失。所以没有帮助。顺便说一句,如果你想知道一个文件的类型手动样本数据,然后硬编码摄取数据集使用正确的类型,打开它在记事本,看看右下角。记事本将为您做侦探工作,并将其标记在那里。如果编码是不可预测的-那么你就有麻烦了:)
2条答案
按热度按时间qkf9rpyu1#
只是现在,我们不能直接在数据工厂/数据流中检查文件编码。我们必须预先设置读/写测试文件的编码类型:
参考:https://learn.microsoft.com/en-us/azure/data-factory/format-delimited-text#dataset-properties
Data Factory默认文件编码为
UTF-8
。就像@wBob说的,你需要在代码级实现编码检查,比如Azure Function或Notebook等。给这些特工打电话。
HTH。
5m1hhzi42#
可以通过将文件读取为不带分隔符的UTF8行并检查前两个字节来检测UTF 16,因为它们将单独可见。如果它们的十六进制值是FFFE或FEFF,则文件是16位UTF。在维基百科上搜索“字节顺序标记”,看看为什么会这样。
不幸的是,对于ANSI,UTF8和其他格式,因为它们没有这样的标记,或者如果文件实际上是UTF8,它将在加载过程中消失。所以没有帮助。
顺便说一句,如果你想知道一个文件的类型手动样本数据,然后硬编码摄取数据集使用正确的类型,打开它在记事本,看看右下角。记事本将为您做侦探工作,并将其标记在那里。
如果编码是不可预测的-那么你就有麻烦了:)