【发布时间】:2020-09-18 10:37:17
【问题描述】:
好的,所以我正在尝试将数据库从 pyspark 写入 azure sql 数据库,但是遇到了 datetime 超出范围值的问题。我知道日期时间和日期时间的值范围不同。
我的表定义如下:
CREATE TABLE [dbo].[DimTour]
(
[TourSk] BIGINT NOT NULL,
[TourBk] INT NOT NULL,
[TourType] VARCHAR(20) NOT NULL,
[RequestedDateTimeUTC] DATETIME2 NOT NULL,
[ScheduledDateTimeUTC] DATETIME2 NOT NULL,
[TourStatus] VARCHAR(20) NOT NULL,
CONSTRAINT [PK_DimTour] PRIMARY KEY CLUSTERED([TourSk] ASC)
);
当我第一次将这个表上传到天蓝色时,日期类型是 Datetime2,从数据源读入我的数据框的数据是 Datetime2 格式。但是,当我尝试将数据帧上传到 sql 数据库时,出现以下错误:“将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。”然后当我查看我的 sql 数据库表时,类型已从 datetime2 切换到 datetime。我知道这个错误源于 0001 年,但为什么数据一直试图转换为日期时间,我该如何解决这个问题?
我是这样写数据的:
dimTour.write.mode('Overwrite').jdbc(url=jdbcUrl, table='dbo.DimTour', properties=connectionProperties)
【问题讨论】:
标签: sql pyspark apache-spark-sql azure-sql-database databricks