【发布时间】:2019-07-10 14:17:53
【问题描述】:
我正在使用下面的代码在 Qubole Notebook 中运行,代码运行成功。
case class cls_Sch(Id:String, Name:String)
class myClass {
implicit val sparkSession = org.apache.spark.sql.SparkSession.builder().enableHiveSupport().getOrCreate()
sparkSession.sql("set spark.sql.crossJoin.enabled = true")
sparkSession.sql("set spark.sql.caseSensitive=false")
import sparkSession.sqlContext.implicits._
import org.apache.hadoop.fs.{FileSystem, Path, LocatedFileStatus, RemoteIterator, FileUtil}
import org.apache.hadoop.conf.Configuration
import org.apache.spark.sql.DataFrame
def my_Methd() {
var my_df = Seq(("1","Sarath"),("2","Amal")).toDF("Id","Name")
my_df.as[cls_Sch].take(my_df.count.toInt).foreach(t => {
println(s"${t.Name}")
})
}
}
val obj_myClass = new myClass()
obj_myClass.my_Methd()
但是,当我在 Qubole 的分析中运行相同的代码时,我收到以下错误。
当我取出下面的代码时,它在 Qubole 的 Anlayze 中运行良好。
my_df.as[cls_Sch].take(my_df.count.toInt).foreach(t => {
println(s"${t.Name}")
})
我相信在某个地方我必须更改 case 类的用法。
我使用的是 Spark 2.3。
谁能告诉我如何解决这个问题。
如果您需要任何其他详细信息,请告诉我。
【问题讨论】:
-
尝试输入:import sparkSession.implicits._
-
您的意思是说“sparkSession.implicits._”而不是“sparkSession.sqlContext.implicits._”? @EmiCareOfCell44
-
是的,错误表明产品编码器(案例类)在该包中可用
-
我也试过这种方式。它抛出相同的错误@EmiCareOfCell44
标签: scala apache-spark apache-spark-sql apache-spark-dataset qubole