繁体   English   中英

Azure 数据工厂复制活动 JSON 数据类型转换问题

[英]Azure Data Factory copy activity JSON data type conversion issue

我有一个 azure 数据工厂管道,用于从第三方 API 获取数据并将数据存储到数据湖 as.json 格式。 当我单击导入模式时,它会显示正确的数据类型格式。 在此处输入图像描述

当我将上述数据湖设置为数据流活动的来源时,Int64 数据类型转换为 boolean。我查看了 Microsoft 文档并知道该值是 0 还是 1,它会自动转换为 boolean。我怎么能避免这种数据类型转换?

在此处输入图像描述

首先,验证您是否已将源设置下的“推断漂移列类型”选中为真。

如果源列中的值仅为 1 或 0,数据工厂会将数据类型检测为 boolean。这可能是一个潜在的错误。

一种解决方法是,由于您使用的是数据流,因此使用 Case 语句为列添加派生,并根据 boolean 值在 output 中派生 1 和 0。

最简单的方法是将所有模式重置为字符串,这意味着不要转换源数据集中的数据类型。

例如,这是我的源数据集模式和数据, setNum中的所有值都是 1 或 0: 在此处输入图像描述

Data Flow Source Projection,setNum的数据类型首先考虑为Boolean。

在此处输入图像描述

重置模式:所有数据类型都将是字符串。

在此处输入图像描述

然后数据工厂会在Sink层进行数据类型的转换。 与从 csv 文件复制数据类似。

更新:

您可以先将架构重置为字符串。

然后使用派生列根据需要更改/转换数据类型。

使用波纹管表达式:

toShort()
toString()
toShort()

在此处输入图像描述

这将解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM