【发布时间】:2020-08-14 17:20:16
【问题描述】:
我正在使用以下简单的代码行将数据从 Azure Databricks 加载到 SQL DB
val loadsqldb = spark.sql("""SELECT * FROM TABLEA""")
// WRITE FROM CONFIG
val writeConfig = Config(Map(
"url" -> url,
"databaseName" -> databaseName,
"dbTable" -> "dbo.TABLENAME",
"user" -> user,
"password" -> password,
"connectTimeout" -> "5"
))
//~
loadsqldb.write.mode(SaveMode.Overwrite).option("truncate", true).sqlDB(writeConfig)
我们的服务器上有一个唯一的 ID 密钥,我们必须保留它,如下所示:
CREATE UNIQUE INDEX i__NeighbourhoodCategoryHourlyForecast_unique
ON almanac_devdb.dbo.NeighbourhoodCategoryHourlyForecast (fk_neighbourhoods, fk_categories, local_date, local_hour)
GO
当我尝试将数据加载到我们的 SQL 数据库时,我们收到以下错误;
Cannot insert duplicate key row in object 'dbo.TABLENAME' with unique index 'i__TABLENAME_unique'. The duplicate key value is (36983, 130000, 2020-08-12, 14).
有人建议我找到某种方法让 Databricks 合并到 OVERWRITE,但我不确定如何执行此操作,或者即使这样做是否正确?
【问题讨论】:
标签: sql-server apache-spark azure-databricks