【问题标题】:Implement case class inside a class在类中实现案例类
【发布时间】: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


【解决方案1】:

无论出于何种原因,内核在处理数据集时都会发现问题。我做了两个与 Apache Toree 一起工作的测试:

【讨论】:

  • 谢谢艾米。我会检查一下,明天告诉你
【解决方案2】:

您所要做的就是在 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}")

    })              
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 2020-07-10
    • 2016-06-18
    相关资源
    最近更新 更多