简体   繁体   English

java.lang.ClassCast errors.GenericRowWithSchema 不能转换为 scala.collection.Seq

[英]java.lang.ClassCast errors.GenericRowWithSchema cannot be cast to scala.collection.Seq

How to convert the RDD of map to wrapped Array , I am getting error如何将 map 的RDD转换为包装的Array ,我收到错误

Schema:架构:

在此处输入图片说明

When I am trying to convert dataframe to pojo, I am getting exception as below:当我尝试将数据帧转换为 pojo 时,出现如下异常:

java.lang.ClassCastException: 
  org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot 
  be cast to scala.collection.Seq

Code:代码:

rdd.map(row => {
  var arrm_list: Seq[Row] = rows.getAs[AnyRef]("ArrTeber").asInstanceOf[Seq[Row]]
  //working fine here
  arrm_list.foreach(x => {
    var arrmtrb__list: Seq[Row] = rows.getAs[AnyRef]("ArrTeberPRD").asInstanceOf[Seq[Row]]

    //working fine here
    arrmtrb__list.foreach(pt => {

      var pd__list: Seq[Row] = rows.getAs[AnyRef]("Pduct").asInstanceOf[Seq[Row]] //raising error
    })
  })
})

The above exception is simply a class cast exception, Since struct cannot be cast to Seq of struct (Refer Schema: -- Pduct: struct (nullable = true) ).上面的异常只是一个类转换异常,因为struct 不能转换为 struct 的 Seq (参考 Schema: -- Pduct: struct (nullable = true) )。 Cast Pduct to Row and then extract nested members.将 Pduct 转换为 Row,然后提取嵌套成员。

df.map(row => {
  var arrm_list: Seq[Row] = row.getAs[Seq[Row]]("ArrTeber")

  arrm_list.foreach(x => {
    var arrmtrb__list: Seq[Row] = x.getAs[Seq[Row]]("ArrTeberPRD")


    arrmtrb__list.foreach(pt => {
      var pd__list: Row = pt.getAs[Row]("Pduct") //Pduct: struct (nullable = true)

    })
  })

})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Spark scala: java.lang.ClassCastException: java.lang.Integer cannot be cast to scala.collection.Seq - Spark scala: java.lang.ClassCastException: java.lang.Integer cannot be cast to scala.collection.Seq java.lang.ClassCastException: org.apache.spark.sql.Column cannot be cast to scala.collection.Seq - java.lang.ClassCastException: org.apache.spark.sql.Column cannot be cast to scala.collection.Seq row.getList java.lang.ClassCastException:java.math.BigDecimal 不能转换为 scala.collection.Seq - row.getList java.lang.ClassCastException: java.math.BigDecimal cannot be cast to scala.collection.Seq 转换scala.collection.Seq的Java对象 <String> 到python列表 - Convert Java object of scala.collection.Seq<String> to python list scala.collection.Seq在Java上不起作用 - scala.collection.Seq doesn't work on Java 在Scala中将Scala.collection.immutable.List的类强制转换为异常到scala.collection.Seq - Getting class cast exception in spark ml for scala.collection.immutable.List to scala.collection.Seq scala:classcast 异常:java.util.HashMap 不能转换为 scala.collection.immutable.Map - scala: classcast exception: java.util.HashMap cannot be cast to scala.collection.immutable.Map Spark java.lang.ClassCastException: scala.collection.mutable.WrappedArray 无法转换为 scala.collection.Seq.immutable - Spark java.lang.ClassCastException: scala.collection.mutable.WrappedArray cannot be cast to scala.collection.immutable.Seq 线程“main”中的异常 java.lang.NoSuchMethodError: &#39;void scala.util.matching.Regex。<init> (java.lang.String, scala.collection.Seq)&#39; - Exception in thread "main" java.lang.NoSuchMethodError: 'void scala.util.matching.Regex.<init>(java.lang.String, scala.collection.Seq)' 是否可以在一个类中同时实现scala.collection.Seq [T]和java.util.List [T] - Is it possible to implement both scala.collection.Seq[T] and java.util.List[T] in one class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM