问题
你想读一个udit日志和得到一个AnalysisException:发现重复的列(年代)错误。
spark.read.format (json) .load (“dbfs: / / mnt / logs / < path-to-logs > /日期= 2021-12-07 ")/ / AnalysisException:发现重复的列(s)在数据模式:“< some_column >”
导致
从2021年11月到2021年12月,数量有限的砖SQL审计日志的发表与重复的区分大小写的参数名称。这可以打破这个模式推理并生成一个错误当你试图读审计日志生成的在这段时间。
下面的参数名称重复:
| |正确名称重复名称| | - - - - - - - - - - - - | - - - - - - - - - - - - - - - - | | dataSourceId | dataSourceId | | alertId | alertId | | dashboardId | dashboardId |
解决方案
创建一个新的集群阅读和修复审计日志文件。
打开模式推理可以区分大小写正确加载数据。
% scala spark.conf.set (“spark.sql。caseSensitive”,真正的)spark.read.format (json) .load (“dbfs: / / mnt /日志/ pathToMyLogs /日期= 2021-12-07 ").write……spark.conf.set (“spark.sql。caseSensitive”,假)
已经处理的日志后,关掉区分大小写。