2017-10-11 3 views
-2

Ich versuche, eine Liste aus einer Zeile mit dem folgenden Schemaelement abzurufen.row.getList java.lang.ClassCastException: java.math.BigDecimal kann nicht in scala.collection.Seq umgewandelt werden

[info] |-- ARRAY_FIELD: array (nullable = false) 
[info] | |-- element: string (containsNull = false) 

Beim Drucken mit

row.getAs[WrappedArray[String]]("ARRAY_FIELD") 

ich folgendes Ergebnis

WrappedArray(Some String value) 

Aber wenn ich die Daten an diesem Index als eine Liste zu drucken versuchen mit ....

row.getList(0) 

Ich erhalte die folgende Ausnahme

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

Hat jemand irgendwelche Ideen auf, warum dies geschieht und wie sie gelöst werden?

+0

können Sie den Druck Schema –

+0

Der erste Codeblock die Ergebnisse des printSchema –

+0

Ihr Schema hinzufügen hat enthält keine Spalte vom Typ 'BigDecimal' Bitte überprüfen Sie noch einmal –

Antwort

0

Ich zog tatsächlich aus dem falschen Index im Schema. Ich nahm an, dass der Index für getList auf dem Index der Elemente basiert, die bei der Verwendung von df.printSchema angezeigt werden. Aber ich habe mich getäuscht. Aus 6 Positionen.

Verwandte Themen