問題
你在試著閱讀一個udit日誌然後得到一個AnalysisException:發現重複列錯誤。
spark.read.format("json").load("dbfs://mnt/logs//date=2021-12-07") // AnalysisException: Found duplicate column(s) in data schema: ' '
導致
從2021年11月到2021年12月,Databricks發布了數量有限的帶有重複大小寫敏感參數名的SQL審計日誌。這可能會破壞模式推斷,並在試圖讀取在此期間生成的審計日誌時生成錯誤。
以下參數名被重複:
|正確名稱|重複名稱| | ------------ | -------------- | | dataSourceId | dataSourceId | | alertId | alertId | | dashboardId | dashboardId |
解決方案
創建一個新的集群來讀取和修複審計日誌文件。
打開大小寫敏感性,這樣模式推斷就可以正確地加載數據。
% scala spark.conf.set(“spark.sql。caseSensitive", true) spark.read.format("json").load("dbfs://mnt/logs/pathToMyLogs/date=2021-12-07").write…spark.conf.set(“spark.sql。caseSensitive”,假)
處理完日誌後,關閉大小寫敏感性。