无法使Spark在Intellij Idea中的scala工作表中运行

无法使Spark在Intellij Idea中的scala工作表中运行,scala,apache-spark,intellij-idea,Scala,Apache Spark,Intellij Idea,如果我把下面的代码放在一个扩展apptrait的对象中,并使用Idea的run命令运行它,那么它运行起来就不会有问题 但是,当我尝试从工作表运行它时,会遇到以下情况之一: 1-如果第一行出现,我得到: 任务不可序列化:java.io.NotSerializableException:A$A34$A$A34 2-如果第一行被注释掉,我得到: 无法为内部类A$A35$A$A35$A12生成编码器 访问定义此类的范围 该项目是使用Idea的Scala插件创建的,这是my build.sbt: .

如果我把下面的代码放在一个扩展apptrait的对象中,并使用Idea的
run
命令运行它,那么它运行起来就不会有问题

但是,当我尝试从工作表运行它时,会遇到以下情况之一:

1-如果第一行出现,我得到:

任务不可序列化:java.io.NotSerializableException:A$A34$A$A34

2-如果第一行被注释掉,我得到:

无法为内部类A$A35$A$A35$A12生成编码器 访问定义此类的范围

该项目是使用Idea的Scala插件创建的,这是my build.sbt:

   ...
   scalaVersion := "2.10.6"
   scalacOptions += "-unchecked"
   libraryDependencies ++= Seq(
       "org.apache.spark" % "spark-core_2.10" % "2.1.0",
       "org.apache.spark" % "spark-sql_2.10" % "2.1.0",
       "org.apache.spark" % "spark-mllib_2.10" % "2.1.0"
       )
我试着回答这个问题。但我正在使用的Idea Ultimate 2017.1并不适用,而且,当我使用工作表时,如果可能的话,我宁愿不在工作表中添加额外的对象


如果我对dataset对象使用
collect()
方法并获得一个“Aclass”实例数组,那么也不会再有错误。导致错误的原因是试图直接使用DS。

使用eclipse兼容模式(打开首选项->键入scala->在语言和框架中,选择scala->选择工作表->仅选择eclipse兼容模式)请参见

我希望能够使用SparkSession对象。检查Eclipse兼容性模式也没有解决该问题。
   ...
   scalaVersion := "2.10.6"
   scalacOptions += "-unchecked"
   libraryDependencies ++= Seq(
       "org.apache.spark" % "spark-core_2.10" % "2.1.0",
       "org.apache.spark" % "spark-sql_2.10" % "2.1.0",
       "org.apache.spark" % "spark-mllib_2.10" % "2.1.0"
       )