todf不是seq的成员,在databricks笔记本中获取此错误

rbl8hiat  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(399)

我正在尝试创建一个基于case类的空df,并尝试在databricks笔记本中这样做。但是,如果我使用object/class来执行这个操作,那么就会出错,如果我去掉了对象定义,那么它就会成功运行。这是databricks笔记本中的一个bug还是我需要导入任何东西。请建议。

import org.apache.spark.sql.SparkSession 
object Emp {
   lazy val spark: SparkSession = SparkSession.builder.getOrCreate()
   import spark.implicits._
   def emptyDf {
   case class Employee(Name: String, Age: Integer, Address: String)
   var empDf = Seq.empty[Employee].toDF()
 }
}

--Error Message    
command-1113195242149456:9: error: value toDF is not a member of Seq[Employee]
         var empDf = Seq.empty[Employee].toDF()
f45qwnt8

f45qwnt81#

我可以通过将case类移到def之外来解决这个问题。

import org.apache.spark.sql.SparkSession
object Emp {
  lazy val spark: SparkSession = SparkSession.builder.getOrCreate()
  import spark.implicits._
  case class Employee(Name: String, Age: Integer, Address: String)
  def emptyDf {
     var empDf = Seq.empty[Employee].toDF()
  }
}

注意:在对象定义之外添加case类,否则调用对象的方法时会抛出错误。

相关问题