我正在嘗試使用資料幀 df_u 將資料寫入 cosmos db。我已經在 writeMcgMd 中定義了配置。我使用的是火花版本 3.2.1
代碼 -
df_u.write.format("cosmos.oltp").options(**writeMcgMd).mode("append").save()
用過的 -
writeMcgMd = {
"spark.cosmos.accountEndpoint" : "https://cccc.azure.com:443/",
"spark.cosmos.accountKey" : "ccc",
"spark.cosmos.database" : "cccc",
"spark.cosmos.container" : "ccc",
# "spark.cosmos.write.strategy": "ItemOverwrite"
}
來自 databricks 集群的驅動程式日志錯誤 [標準錯誤] -
498) 在 py4j.Gateway.invoke(Gateway.java:295) 在 py4j.commands 在 py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:380) 在 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)。 AbstractCommand.invokeMethod(AbstractCommand.java:132) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:251) at java.lang.Thread.run(Thread.java :748)原因:org.apache.spark.SparkException:作業因階段失敗而中止:階段 17.0 中的任務 2 失敗 4 次,最近一次失敗:階段 17.0 中丟失任務 2.3(TID 200)(10.240.26.5 執行者 0 ):java.lang.IllegalArgumentException:要求失敗:id 是必填欄位。但它丟失了或者它不是一個字串。Json: {"_attachments":"attachments/","databasename":"mwhcicm","lastloadtime":
id 是必填欄位。但它丟失了或者它不是一個字串。杰森:
uj5u.com熱心網友回復:
java.lang.IllegalArgumentException:要求失敗:id 是必填欄位。但它丟失了,或者它不是一個字串。
此錯誤表明您傳遞給正在交付給服務的 JSON 檔案的值沒有必要的 ID 欄位。
因為這個必要的屬性“id;” 不存在,輸入顯示無效。
為了克服這個問題,指定一個帶有字串值的 id 屬性作為檔案的一部分。
通過這種方法,我們在我們的環境中重現了相同的場景,并且成功了。
確保安裝CosmosDB-Spark連接器庫。
下面是示例代碼,

輸出:

缺少 ID 屬性的參考。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/495254.html
上一篇:Azure資料工廠-使用帶有檔案路徑的CSV復制檔案
下一篇:Azure迭代容器中的Blob
