我目前正在从 excel 工作表中导入数据集,该工作表的列名带有像这样的点字符"abc.xyz"
。
我经历了几个 stackOverflow 问题,它说我们可以用带有反引号的列名替换它,如下所示"'abc.xyz'"
:因此,我将所有包含点的列名重命名为相同的名称,但用反引号括起来,如下所示:
df.columns.foreach(item => {
if(item.contains("."))
{
df.withColumnRenamed(item, s"`$item`")
}
})
现在,当我在 ConstraintSuggestionRunner 类中传递这个数据框时,如下所示:
val suggestionResult = ConstraintSuggestionRunner()
.onData(df)
.addConstraintRules(Rules.DEFAULT)
.setKLLParameters(KLLParameters(sketchSize = 2048, shrinkingFactor = 0.64, numberOfBuckets = 10))
.run()
我收到如下错误:
错误主要:org.apache.spark.sql.AnalysisException:无法解析
'`abc.xyz`'
给定的输入列:
如何解决此错误?