取消
顯示的結果
而不是尋找
你的意思是:

合並模式錯誤消息盡管將選項設置為true

alexiswl”id=
新的貢獻者三世

有人遇到這個錯誤:

' ' '
模式不匹配檢測在編寫三角洲表(表ID: d4b9c839 - af0b - 4 - b62 - aab5 - 1072 d3a0fa9d)。要啟用模式遷移使用DataFrameWriter或DataStreamWriter,請設置:”。選項(“mergeSchema”,“真正的”)”
' ' '

但是代碼使用

”“python
df_pssaveAsTable(
jobs.dracarys_ingested,
模式=附加,
選項={
mergeSchema:真正的
}
)
' ' '

我不使用選項正確了嗎?

運行在13.1(包括Apache火花3.4.0,Scala 2.12)

完整回溯:

“‘pytb

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AnalysisException回溯(最近調用最後)
文件<命令- 1565101189640444 >:52
35 df_ps = spark.createDataFrame (
36 pd.DataFrame (
37 [
(…)
48)
49)
51 #保存到列表工作流攝取
推薦- - - - - - > 52 df_ps.write.saveAsTable (
53“jobs.dracarys_ingested”,
54模式= "添加",
55選項= {
56“mergeSchema”:“真正的”
57}
58)
從等待60 #刪除行筆記本
61 sql (
62 f“刪除工作。dracarys_to_ingest”
63 f“batch_id = = {batch_id}和wfr_id = = {wfr_id}, portal_run_id = = {portal_run_id}”
64)

文件/磚/火花/ python / pyspark / instrumentation_utils。py: 48, _wrap_function。<當地人>。包裝器(* args, * * kwargs)
46開始= time.perf_counter ()
47個試題:
- - - > 48 res = func (* args, * * kwargs)
49 logger.log_success (
50 module_name class_name、function_name time.perf_counter()——開始,簽名
51)
52返回res

文件/磚/火花/ python / pyspark / sql /讀寫。py: 1576年DataFrameWriter。saveAsTable(self, name, format, mode, partitionBy, **options)
1574如果格式不是沒有:
1575 self.format(格式)
- > 1576 self._jwrite.saveAsTable(名稱)

文件/磚/火花/ python / lib / py4j-0.10.9.7-src.zip / py4j / java_gateway。py: 1322年JavaMember。__call__(自我,* args)
1316命令=原型。CALL_COMMAND_NAME + \
1317 self.command_header + \
1318 args_command + \
1319年proto.END_COMMAND_PART
1321年的答案= self.gateway_client.send_command(命令)
- > 1322 return_value = get_return_value (
1323年的答案,自我。gateway_client,自我。target_id self.name)
1325年在temp_args temp_arg:
1326如果hasattr (temp_arg“_detach”):

文件/磚/火花/ python / pyspark /錯誤/異常/捕獲。py: 191年capture_sql_exception。<當地人> .deco(*, * *千瓦)
187 = convert_exception轉換(e.java_exception)
188如果不是isinstance(轉換,UnknownException):
189 #隱藏除了來自哪裏顯示non-Pythonic
190 # JVM異常消息。
- - > 191年提高從沒有轉換
192年:
193年籌集

AnalysisException:模式匹配檢測到寫作時三角洲表(表ID: d4b9c839 - af0b - 4 - b62 - aab5 - 1072 d3a0fa9d)。
要啟用模式遷移使用DataFrameWriter或DataStreamWriter,請設置:
”。選項(“mergeSchema”,“真正的”)”。
其他操作,設置會話配置
spark.databricks.delta.schema.autoMerge.enabled“真正的”。看文檔
具體的操作細節。

表模式:

——batch_id:字符串(nullable = true)
——wfr_id:字符串(nullable = true)
——type_name:字符串(nullable = true)
——wfr_step_name:無效(nullable = true)
——portal_run_id:字符串(nullable = true)
——date_ingested:日期(可空= true)
——dracarys_version:字符串(nullable = true)


數據模式:

——batch_id:字符串(nullable = true)
——wfr_id:字符串(nullable = true)
——type_name:字符串(nullable = true)
——wfr_step_name:字符串(nullable = true)
——portal_run_id:字符串(nullable = true)
——date_ingested:日期(可空= true)
——dracarys_version:字符串(nullable = true)


' ' '



1接受解決方案

接受的解決方案

alexiswl”id=
新的貢獻者三世

別擔心團隊,我想通了!

而不是使用kwargs選項,而不是你需要使用.option方法寫表之前,像下麵

' ' '

df_ps.write.option (
“mergeSchema”,“真正的”
).saveAsTable (
“jobs.dracarys_to_ingest”,
模式= "添加"
)
' ' '

在原帖子查看解決方案

3回複3

alexiswl”id=
新的貢獻者三世

別擔心團隊,我想通了!

而不是使用kwargs選項,而不是你需要使用.option方法寫表之前,像下麵

' ' '

df_ps.write.option (
“mergeSchema”,“真正的”
).saveAsTable (
“jobs.dracarys_to_ingest”,
模式= "添加"
)
' ' '

Vidula_Khanna”id=
主持人”id=
主持人

@alexiswl

分享智慧!標誌著最好的答案,你幫助別人在我們社區快速高效地找到有價值的信息。

謝謝!

alexiswl”id=
新的貢獻者三世

嗨Vidula,

我將接受上麵的回答。認為這是有點奇怪,給自己榮譽嗎?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map