Реализуйте case-класс внутри класса - PullRequest
0 голосов
/ 10 июля 2019

Я использую приведенный ниже код для запуска в 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()

enter image description here

Однако при запуске втот же код в Qubole's Analyze, я получаю следующее сообщение об ошибке.

enter image description here

Когда я вынимаю код ниже, он работает нормально в Qubole's Anlayze.

my_df.as[cls_Sch].take(my_df.count.toInt).foreach(t => {            

            println(s"${t.Name}")

        })

Я считаю, что где-то я должен изменить использование класса case.

Я использую Spark 2.3.

Может кто-нибудь, пожалуйста, дайте мне знать, как решить эту проблему.

Пожалуйста, дайте мне знать, если вам нужны какие-либо другие данные.

1 Ответ

0 голосов
/ 10 июля 2019

По любой причине ядро ​​обнаруживает проблемы при работе с набором данных. Я сделал два теста, которые работали с Apache Toree:

enter image description here

...