我在Azure上有一个cosmosDB帐户。我使用Spark连接器“ azure-cosmosdb-spark_2.4.0_2.11-1.3.4-uber.jar”通过Databricks通过主键“ unique_ID”插入了10行。
cosmosDB容器设置了unique_ID作为唯一键。我遇到了多个问题。
要重新插入具有相同unique_ID但字段值不同的下一组记录,我无法成功完成。我正在使用的查询:
connectionConfig = {
"Endpoint" : "https://.documents.azure.com:443/",
"Masterkey" : "",
"Database" : "",
"preferredRegions" : "East US",
"Collection": "",
"Upsert" : "true"
}
data.write.format("com.microsoft.azure.cosmosdb.spark").options(**connectionConfig).save()
这失败了!
错误:写入一个非空表。
因此,我使用下一个查询:
data.write.format("com.microsoft.azure.cosmosdb.spark").mode("append").options(**connectionConfig).save()
这也失败了!
错误:违反唯一索引约束。
将模式“追加”替换为“覆盖”会给出完全相同的错误消息。
我该如何更新记录?
我不理解的是,至少不应该覆盖工作并且用新记录覆盖整个数据库吗?