我正试图用一些额外的规则来扩展SparkSQL Catalyst分析器。
我得到以下错误:
**""" trait CatalystConf in package catalyst cannot be accessed in package org.apache.spark.sql.catalyst """**
在我的尝试中,我正在做以下事情:
class CustomSQLContext(sc: SparkContext) extends SQLContext(sc) {
val an = new CustomAnalyzer(Map("testRule" -> testRule),catalog,functionRegistry,conf)
override lazy val analyzer: Analyzer = an
}
class CustomAnalyzer(rules: Map[String, Rule[LogicalPlan]], catalog: Catalog, registery: FunctionRegistry, conf: CatalystConf )
extends Analyzer( catalog, registery, conf) {
......
override lazy val batches = my_batch.toSeq ++ default_batches ++ Nil
}
有什么想法可以在没有这个错误的情况下将conf传递给customAnalyzer吗?
我不认为这是导入错误,因为它看到了包,但无法访问文件。
我试着将它作为SQLConf传递,但出现了一个未找到的错误,导入似乎不起作用。
谢谢!
该类是私有
package org.apache.spark.sql.catalyst
private[spark] trait CatalystConf {
def caseSensitiveAnalysis: Boolean
}
如果自己的代码被放入org.apache.spark.sql.catalyst
包中,那么使用几乎不受影响的代码的唯一方法就是。这没有吸引力。因此,您必须将相关代码复制到自己的包中,而不仅仅是扩展它。