Zugriff auf Array-Spalte in Spark

8

Ein Spark DataFrame enthält eine Spalte vom Typ Array [Double]. Es wird eine ClassCastException-Ausnahme ausgelöst, wenn ich versuche, es in einer map () -Funktion zurück zu bekommen. Der folgende scala-Code erzeugt eine Ausnahme.

%Vor%

Die Ausnahme ist

%Vor%

Cam jemand erklären mir, warum es nicht funktioniert? Was soll ich stattdessen tun? Ich benutze Spark 1.5.1 und scala 2.10.6

Danke

    
Boris 28.10.2015, 12:20
quelle

1 Antwort

20

ArrayType wird in Row als scala.collection.mutable.WrappedArray dargestellt. Sie können es zum Beispiel mit

extrahieren %Vor%

oder

%Vor%

oder sogar:

%Vor%

Wenn DataFrame relativ dünn ist, könnte die Mustererkennung eine bessere Lösung sein:

%Vor%

obwohl Sie beachten müssen, dass der Typ der Sequenz nicht markiert ist.

In Spark & ​​gt; = 1.6 können Sie auch Dataset wie folgt verwenden:

%Vor%     
zero323 28.10.2015, 12:49
quelle