row.getList java.lang.ClassCastException:java.math.BigDecimal无法强制转换为scala.collection.Seq

时间:2017-10-11 12:55:58

标签: 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.getList(0)

我收到以下异常

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to scala.collection.Seq

有没有人对于为什么会发生这种情况以及如何解决这个问题有任何想法?

1 个答案:

答案 0 :(得分:0)

我实际上是从模式中的错误索引中提取的。我假设getList的索引是基于使用df.printSchema时显示的元素的索引。但是我错了。关闭6个位置。