无法读取审计日志由于重复的列

区分大小写的参数名称导致重复列错误当阅读审计日志。

写的亚当Pavlacka

去年发表在:2022年7月22日

问题

你想读一个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”,假)

已经处理的日志后,关掉区分大小写。

删除

警告

启用模式推理在共享集群和/或集群,与其他工作负载执行其他工作负载可能会导致问题。


这篇文章有用吗?