我得到一個,
“AnalysisException未能LongType和StringType合並不兼容的數據類型
當試圖運行以下命令,
“df。寫。格式(”δ”)。saveAsTable(”模式.k_adhoc.df”,模式=”覆蓋”)”
我保存前鑄造列:
' ' '
“df”dataframe的模式是:
' ' '
| - - - id:字符串(nullable = false)
|——年:整數(nullable = true)
|——月:整數(nullable = true)
|——month_year:字符串(nullable = true)
|——mm-yyyy:日期(可空= true)
|——h_id:字符串(nullable = true)
' ' '
' ' '
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AnalysisException回溯(最近調用最後)文件<命令- 3186243284832184>:21#保存表- - - - - > 2df。寫。格式(”δ”)。saveAsTable(”模式.k_adhoc.df”,模式=”覆蓋”)文件/磚/火花/ python / pyspark / instrumentation_utils.py: 48,在_wrap_function。<當地人> .wrapper(* * kwargs * args)46開始=時間。perf_counter ()47試一試:推薦- - - - - - > 48res=函數(*arg遊戲,**kwargs)49日誌記錄器。log_success (50module_name、class_name function_name、時間。perf_counter ()- - - - - -首先,簽名51)52返回res文件/磚/火花/ python / pyspark / sql / readwriter.py: 1520,在DataFrameWriter.saveAsTable(自我、名稱、格式、模式、partitionBy、* *選項)1518年如果格式是不沒有一個:1519年自我。格式(格式)- > 1520自我。_jwrite。saveAsTable(的名字)文件/磚/火花/ python / lib / py4j-0.10.9.5-src.zip / py4j / java_gateway.py: 1321,在JavaMember.__call__(自我,* args)1315年命令=原型。CALL_COMMAND_NAME+\1316年自我。command_header+\1317年args_command+\1318年原型。END_COMMAND_PART1320年回答=自我。gateway_client。send_command(命令)- > 1321return_value=get_return_value(1322年回答,自我。gateway_client,自我。target_id,自我。的名字)1324年為temp_arg在temp_args:1325年temp_arg。_detach()文件/磚/火花/ python / pyspark /錯誤/ exceptions.py: 234,在capture_sql_exception。<當地人> .deco(*,* *千瓦)230年轉換=convert_exception (e。java_exception)231年如果不isinstance(轉換,UnknownException):232年#隱藏除了來自哪裏顯示non-Pythonic233年# JVM異常消息。- - > 234提高轉換從沒有一個235年其他的:236年提高AnalysisException:失敗的合並字段“h_id”和“h_id”。未能LongType和StringType合並不兼容的數據類型
' ' '
嗨@kll
供參考,
https://docs.m.eheci.com/delta/delta-batch.html schema-validation-1