Formatting Azure数据工厂:以逗号作为十进制分隔符(而不是点)读取双倍数据

Formatting Azure数据工厂:以逗号作为十进制分隔符(而不是点)读取双倍数据,formatting,azure-data-factory,Formatting,Azure Data Factory,我目前正在尝试从CSV文件(用分号“;”分隔)中读取十进制数,格式为逗号(,)作为十进制分隔符,而不是点(.) i、 e:编号12356.12存储为12356,12 在源的投影中,正确读取值的正确格式是什么 格式应为Java十进制格式 如果CSV文件的columnDelimiter是逗号(“,”),您首先要考虑的是如何避免数字数据不会被视为不同的列。由于您的号码数据存储为12356,12,因此我的建议如下: 将列分隔符更改为|或其他特殊字符 2.设置转义字符。请参见以下描述: 此外,12356

我目前正在尝试从CSV文件(用分号“;”分隔)中读取十进制数,格式为逗号(,)作为十进制分隔符,而不是点(.)

i、 e:编号12356.12存储为12356,12

在源的投影中,正确读取值的正确格式是什么

格式应为Java十进制格式


如果CSV文件的columnDelimiter是逗号(“,”),您首先要考虑的是如何避免数字数据不会被视为不同的列。由于您的号码数据存储为
12356,12
,因此我的建议如下:

  • 将列分隔符更改为
    |
    或其他特殊字符 2.设置转义字符。请参见以下描述:


    此外,12356,12不能在ADF中自动识别为十进制格式。而且没有这样的机制将
    转化为
    。因此,我认为您需要将数据作为
    string
    temporary进行传输。然后用java代码在目的地将其转换为十进制。

    嘿,杰,谢谢你的回答。如上所述,列分隔符是分号。所以ADF没有将逗号变成点的选项。遗憾的是,大多数语言和云解决方案都有这个选项。那么我就不用data factory了,它对我的需求来说有点太浅了。嗨,在复制作业中,通过将“映射”>“类型转换设置”>“区域性”设置为“de de de”,十进制分隔符可以自动识别为逗号-不确定这是否会破坏其他转换,但它至少帮助了我们。您可以在数据流中操作数据:
    toDouble(replace(replace([Principal],“,”,“,”,”,“,”)