У меня есть следующий код PySpark, написанный на ноутбуке Databricks Notebook, который успешно сохраняет результаты от Spark SQL до Azure Cosmos DB со строкой кода:
df.write.format("com.microsoft.azure.cosmosdb.spark").mode("overwrite").options(**writeConfig3).save()
Полный код такой следующим образом:
test = spark.sql("""SELECT
Sales.CustomerID AS pattersonID1
,Sales.InvoiceNumber AS myinvoicenr1
FROM Sales
limit 4""")
## my personal cosmos DB
writeConfig3 = {
"Endpoint": "https://<cosmosdb-account>.documents.azure.com:443/",
"Masterkey": "<key>==",
"Database": "mydatabase",
"Collection": "mycontainer",
"Upsert": "true"
}
df = test.coalesce(1)
df.write.format("com.microsoft.azure.cosmosdb.spark").mode("overwrite").options(**writeConfig3).save()
Используя приведенный выше код, я успешно записал в свою базу данных Cosmos DB (mydatabase) и коллекцию (mycontainer) ![enter image description here](https://i.stack.imgur.com/jeY6H.png)
Когда я пытаюсь перезаписать контейнер, изменив Spark SQL следующим образом (просто изменив pattersonID1 на pattersonID2 и myinvoicenr1 на myinvoicenr2
test = spark.sql("""SELECT
Sales.CustomerID AS pattersonID2
,Sales.InvoiceNumber AS myinvoicenr2
FROM Sales
limit 4""")
Вместо того, чтобы перезаписать / обновить коллекцию новым запросом, Cosmos DB добавляет контейнер как следует:
![enter image description here](https://i.stack.imgur.com/bMe08.png)
И по-прежнему оставляет исходный запрос в коллекции:
![enter image description here](https://i.stack.imgur.com/8YRl0.png)
Есть ли способ полностью перезаписать или обновить базу данных космоса?