Scala 这意味着什么?未应用的方法仅在需要函数类型时才会转换为函数
问题: 下面是我得到的错误 类BenchmarkModelValsProcessor中缺少方法进程的参数列表未应用的方法仅在需要函数类型时才会转换为函数。您可以通过编写process u或process(,)而不是process来显式转换Scala 这意味着什么?未应用的方法仅在需要函数类型时才会转换为函数,scala,apache-spark,Scala,Apache Spark,问题: 下面是我得到的错误 类BenchmarkModelValsProcessor中缺少方法进程的参数列表未应用的方法仅在需要函数类型时才会转换为函数。您可以通过编写process u或process(,)而不是process来显式转换 I am trying to implement following kind of code ' ValsProcessor { def process(oraOptionDfConfig: DataFrameReader, sparkSessio
I am trying to implement following kind of code
'
ValsProcessor {
def process(oraOptionDfConfig: DataFrameReader, sparkSession: SparkSession ) : Unit = { ....}
}
ValsProcessor2{
def process(oraOptionDfConfig: DataFrameReader, sparkSession: SparkSession ) : Unit = { ....}
}
val myFuncs2 : Map[String, () => Unit]=
Map(
"benchmark_model_vals" -> (() => new ValsProcessor().process), //Error
"benchmark_model_vals2" -> (() => ValsProcessor2().process)
)
'
可能
myFunc2
应该具有类型Map[String,(DataFrameReader,SparkSession)=>Unit]
因此,请尝试:
What am I doing wrong here ? How to fix this ?
sir已尝试获取不同的错误对象,但ValsProcessor不是包com.snp.processors的成员注意:存在类ValsProcessor,但它没有伴生对象。为什么我需要伴生对象?唯一的区别是ValsProcessor类放在另一个包中,即.com.snp.processors@user3252097是否可以共享所有文件?trait Processor00{def process(oraOptionDfConfig:DataFrameReader,sparkSession:sparkSession):Unit}类BMValsProcessor扩展处理器{def process(oraOptionDfConfig:DataFrameReader,sparkSession:sparkSession):Unit={println(“在BMValsProcessor中”)///实际业务逻辑}类BMValsProcessor2扩展处理器{def进程(oraOptionDfConfig:DataFrameReader,sparkSession:sparkSession):Unit={println(“在BMValsProcessor2中”)///实际业务逻辑}对象ValProcessor{def main(args:Array[String]):Unit={val df:DataFrameReader=null;//初始化DataFrameReader val spark:SparkSession=null;//初始化SparkSession val procs:Map[String,(DataFrameReader,SparkSession)=>Unit getAllDefinedProcessors();procs.values.foreach(proc=>proc(df,spark))}
val myFuncs2 : Map[String, (DataFrameReader, SparkSession) => Unit]=
Map(
"benchmark_model_vals" -> new ValsProcessor().process,
"benchmark_model_vals2" -> ValsProcessor2().process
)