Apache Spark: Wie erstelle ich eine Matrix aus einem DataFrame?

8

Ich habe einen Datenrahmen in Apache Spark mit einem Array von ganzen Zahlen, die Quelle ist eine Reihe von Bildern. Ich möchte schließlich PCA machen, aber ich habe Probleme, nur eine Matrix aus meinen Arrays zu erstellen. Wie erstelle ich eine Matrix von einer RDD?

%Vor%

Ich bekomme den gleichen Fehler von jeder möglichen Anordnung, die ich mir vorstellen kann:

%Vor%

Wenn ich es versuche

%Vor%

Traceback (letzter Aufruf zuletzt):

%Vor%     
NormallySane 22.07.2015, 15:47
quelle

1 Antwort

7

Da Sie keine Beispieleingabe angegeben haben, gehe ich davon aus, dass es mehr oder weniger wie folgt aussieht: id ist eine Zeilennummer und image enthält Werte.

%Vor%

Zunächst müssen Sie verstehen, dass DenseMatrix eine lokale Datenstruktur ist. Um genau zu sein, ist es ein Wrapper um numpy.ndarray . Im Moment (Spark 1.4.1) gibt es keine verteilten Äquivalente in PySpark MLlib.

Dichte Matrix benötigt drei obligatorische Argumente numRows , numCols , values wobei values eine lokale Datenstruktur ist. In Ihrem Fall müssen Sie zuerst sammeln:

%Vor%

Schließlich:

%Vor%

Bearbeiten :

In Spark 1.5+ können Sie mllib.linalg.distributed wie folgt verwenden:

%Vor%

obwohl API derzeit noch begrenzt ist, um in der Praxis nützlich zu sein.

    
zero323 22.07.2015, 18:17
quelle