首页 > 解决方案 > Azure 数据工厂 v2 - 错误年份从镶木地板复制到 SQL DB

问题描述

我在使用 Azure 数据工厂 v2 时遇到了一个奇怪的问题。有一个 Spark 作业正在运行并生成 parquet 文件作为输出,然后 ADFv2 复制活动获取输出 parquet 并将数据复制到 Azure SQL 数据库中。除日期外,一切正常!当数据进入 SQL 时,年份是 1969 年。所以今天的日期(2018-11-22)将登陆为 3987-11-22。

我尝试在 Date、DateTime、DateTimeOffset 和 String 之间更改源和目​​标类型,但没有成功。目前我正在更正数据库中的日期,但这并不理想。

我已经使用 Parquet Viewer、Spark 和 Python(桌面)打开了 Parquet 源文件,它们都正确地将年份显示为 2018

标签: azureazure-sql-databaseparquetazure-data-factoryazure-data-factory-2

解决方案


基于Parquet 编码定义,不Date, DateTime, DateTimeOffset and String存在格式,因此您无需尝试使用这些格式。

基于Azure 数据工厂中 Parquet 文件的此数据类型映射:

在此处输入图像描述

DateTimeOffset格式对应,我建议你在Int96parquet文件的源上尝试这种传输。


推荐阅读