Azure Databricks BulkMoveToSql日​​期/时间转换问题

时间:2019-05-06 13:24:17

标签: sql azure apache-spark databricks

我有一个Spark / Databricks作业,可将数据从数据砖文件系统(AVRO文件)移至Azure SQL数据库。使用JDBC可以很好地完成此工作(从文件存储中读取数据帧,然后将其写入JDBC目标),但是有点慢。

Microsoft提供了具有批量复制功能的SQLDB Spark驱动程序。如果我使用此驱动程序并调用.write()方法,那么一切都会按预期进行:

df.write.mode(SaveMode.Overwrite).sqlDB(bulkCopyConfig)

但是,如果我使用批量复制:

df.bulkCopyToSqlDB(bulkCopyConfig)

驱动程序似乎无法正确处理日期字段:

om.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换日期和/或时间时转换失败。

我已验证数据框架构和表元数据是否“正确”或至少符合预期; .write()方法创建的表布局选择Azure SQL datetime字段作为日期值,因此在为bulkCopy(.write()将为表做准备)时,我使用了相同的结构,.bulkCopyToSqlDB似乎想要表已经存在)。

关于如何获取bulkCopy正确解释/转换日期的任何想法?我是否需要先将它们转换为数据帧中其他格式的字符串?

0 个答案:

没有答案