有人遇到這個錯誤:
' ' '
模式不匹配檢測在編寫三角洲表(表ID: d4b9c839 - af0b - 4 - b62 - aab5 - 1072 d3a0fa9d)。要啟用模式遷移使用DataFrameWriter或DataStreamWriter,請設置:”。選項(“mergeSchema”,“真正的”)”
' ' '
但是代碼使用
”“python
df_ps。寫。saveAsTable(
”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)
' ' '