sql - Azure Databricks BulkMoveToSql 日期/时间转换问题
问题描述
我有一个 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 日期时间字段,因此我在为 bulkCopy 准备表时使用了相同的结构(.write() 将创建一个表,.bulkCopyToSqlDB 似乎想要表已经存在)。
关于如何让 bulkCopy 正确解释/转换日期的任何想法?我是否需要先将它们转换为不同格式的数据框中的字符串?
解决方案
推荐阅读
- java - 无法解决 spring-mvc 项目中的 spring-webmvc-5.0.0.M5 依赖项
- python - 如何仅使用模板将 UserCreationForm 字段传递到输入字段?
- javascript - 抽屉导航背景图像 SVG
- java - 从firebase获取数据时如何显示进度条?
- redirect - Apache 反向代理产生过多的重定向
- apache-spark - 是否可以在 HDFS 上解压 tar.gz 文件并将其放在不同的 HDFS 文件夹中而不将其带到本地系统
- javascript - 如何从下到上增加图像的高度
- xamarin - Xamarin.forms - 复选框触发另一个复选框的 CheckedChanged 事件
- python - Python阿拉伯语文本以从右到左的方向而不是从左到右的方向返回
- html - 将文本放置在所需位置