我正在使用以下代码在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的Analyze中以相同的代码运行时,出现以下错误。
当我取出下面的代码时,它在Qubole的Anlayze中运行良好。
my_df.as[cls_Sch].take(my_df.count.toInt).foreach(t => {
println(s"${t.Name}")
})
我相信我必须在某个地方更改case
类的用法。
我正在使用Spark 2.3。
有人可以让我知道如何解决此问题。
如果您需要其他详细信息,请告诉我。
答案 0 :(得分:0)
答案 1 :(得分:0)
您要做的就是在my_Methd()函数中包含import spark.implicits._
。
def my_Methd() {
import spark.implicits._
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}")
})
}