首页 > 解决方案 > 如何修复此错误“未找到:值 BMValsProcessor”

问题描述

如何修复此代码中的此错误

trait Processor00 {
  def process(oraOptionDfConfig: DataFrameReader, sparkSession: SparkSession ): Unit 
}

class BMValsProcessor extends Processor  {
   def process(oraOptionDfConfig: DataFrameReader, sparkSession: SparkSession ) : Unit ={
     println("in BMValsProcessor")///actual business logic
   }
}

class BMValsProcessor2 extends Processor  {
   def process(oraOptionDfConfig: DataFrameReader, sparkSession: SparkSession ) : Unit ={
     println("in BMValsProcessor2") //actual business logic
   }
}

object ValProcessor {
   def main( args : Array[String]):Unit ={

     val df : DataFrameReader = null; // initialization of DataFrameReader
     val spark: SparkSession = null; // initialization of SparkSession

      val procs :Map[String, (DataFrameReader, SparkSession) => Unit] = getAllDefinedProcessors();

       procs.values.foreach(
                proc => proc(df,spark) 
        )
   }

    def getAllDefinedProcessors(): Map[String, (DataFrameReader, SparkSession) => Unit] = {
     val myFuncs2 : Map[String, () => Unit]=
      Map(
        "bm_vals" -> (() =>  BMValsProcessor().process), //Error
        "bm_vals2" -> (() => BMValsProcessor2().process) //Error
      )
      myFuncs2;
   }

}

错误是:

未找到:值 BMValsProcessor

标签: scalaapache-spark

解决方案


表达式是对象BMValsProcessor()的调用方法applyBMValsProcessor

查看https://gist.github.com/AndriiStefaniv/902938c71440c3f25769528e5c730d4f

我试图修复它。


推荐阅读