Dataset.map () генерирует исключение ClassCastException - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь перебрать набор данных с помощью функции map, возвращая элементы без каких-либо изменений в новую переменную. А затем вызовите метод сбора. Я получаю исключение приведения класса. ClassCastException. что мне не хватает?

def fun() {
   val df = Seq(Person("Max", 33), 
                Person("Adam", 32), 
                Person("Muller", 62)).toDF()

   val encoderPerson = Encoders.product[Person]

   val personDS: Dataset[Person] = df.as[Person](encoderPerson)

   val newPersonDS = personDS.map { iter2 => iter2}

   newPersonDS.collect()
}


case class Person(name: String, age: Int)

java.lang.ClassCastException: com.query.Person не может быть приведен к com.query.Person на com.query.MyClass $$ anonfun $ 1.apply (MyClass.scala: 42) в org.apache.spark.sql.catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage3.mapelements_doConsume_0 $ (неизвестный источник) в org.apache.spark.sql.catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage3.deserializetoobject_doConsume_0 $ (неизвестный источник) at org.apache.spark.sql.catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage3.agg_doAggregateWithKeysOutput_0 $ (неизвестный источник) в org.apache.spark.sql.catalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage3.processNext (неизвестный источник) в org.apache.spark.sql.execution.BufferedRowIterator.hasNext (BufferedRowIterator.java:43) в org.apache.spark.sql.execution.WholeStageCodegenExec $$ anonfun $ 10 $$ anon $ 1.hasNext (WholeStageCodegenExec.scala: 614) в org.apache.spark.sql.execution.SparkPlan $$ anonfun $ 2.apply (SparkPlan.scala: 253) в org.apache.spark.sql.execution.SparkPlan $$ anonfun $ 2.apply (SparkPlan.scala: 247) в org.apache.spark.rdd.RDD $$ anonfun $ mapPartitionsInternal $ 1 $$ anonfun $ apply $ 25.apply (RDD.scala: 830) в org.apache.spark.rdd.RDD $$ anonfun $ mapPartitionsInternal $ 1 $$ anonfun $ apply $ 25.apply (RDD.scala: 830) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 38) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark.scheduler.ResultTask.runTask (ResultTask.scala: 87) в org.apache.spark.scheduler.Task.run (Task.scala: 109) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 345) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) at java.lang.Thread.run (Thread.java:745)

...