row.getList java.lang.ClassCastException:java.math.BigDecimal无法转换为scala.collection.Seq
我正在尝试从具有以下模式元素的行中检索列表row.getList java.lang.ClassCastException:java.math.BigDecimal无法转换为scala.collection.Seq,scala,apache-spark,apache-spark-sql,row,spark-dataframe,Scala,Apache Spark,Apache Spark Sql,Row,Spark Dataframe,我正在尝试从具有以下模式元素的行中检索列表 [info] |-- ARRAY_FIELD: array (nullable = false) [info] | |-- element: string (containsNull = false) 打印时使用 row.getAs[WrappedArray[String]]("ARRAY_FIELD") 我得到以下结果 WrappedArray(Some String value) 但当我试图将该索引处的数据打印为列表时 使用 row
[info] |-- ARRAY_FIELD: array (nullable = false)
[info] | |-- element: string (containsNull = false)
打印时使用
row.getAs[WrappedArray[String]]("ARRAY_FIELD")
我得到以下结果
WrappedArray(Some String value)
但当我试图将该索引处的数据打印为列表时
使用
row.getList(0)
我得到以下例外
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to scala.collection.Seq
有人知道为什么会发生这种情况以及如何解决吗 我实际上是从模式中的错误索引中提取的。我假设getList的索引基于使用df.printSchema时显示的元素索引。但我错了。取消6个帖子。你能添加打印模式吗第一个代码块包含打印模式的结果你的模式不包含任何类型为
BigDecimal
的列请再次检查。我相信你的问题实际上对我的问题有所帮助。我不想发布整个模式,因为我认为这是没有必要的,但是因为你的问题,我现在看到我从模式中的错误索引中提取。当我从正确的索引中提取时,一切都很好。