ich die pyspark TF-IDF-Funktionen angewendet haben und die folgenden Ergebnisse zurück.Wie SVD auf TF-IDF Datenrahmen in pyspark anwenden
| features |
|----------|
| (35,[7,9,11,12,19,26,33],[1.2039728043259361,1.2039728043259361,1.2039728043259361,1.6094379124341003,1.6094379124341003,1.6094379124341003,1.6094379124341003]) |
| (35,[0,2,4,5,6,11,22],[0.9162907318741551,0.9162907318741551,1.2039728043259361,1.2039728043259361,1.2039728043259361,1.2039728043259361,1.6094379124341003]) |
Also ein Datenrahmen mit 1 Spalte (Features), die SparseVectors als Zeilen enthält.
Jetzt möchte ich die IndexRowMatrix von diesem Datenrahmen bauen, so dass ich die SVD-Funktion ausführen können, die hier beschrieben wird, über https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html?highlight=svd#pyspark.mllib.linalg.distributed.IndexedRowMatrix.computeSVD
Ich habe versucht, die folgenden aber hat nicht funktioniert:
mat = RowMatrix(tfidfData.rdd.map(lambda x: x.features))
TypeError: Cannot convert type <class 'pyspark.ml.linalg.SparseVector'> into Vector
Ich habe RowMatrix benutzt, weil ich kein Tupel erstellen muss, um es zu konstruieren, aber ich kann nicht einmal RowMatrix bauen. IndexedRowMatrix wird für mich schwieriger sein.
So wie die IndexedRowMatrix auf dem setzen von tf-idf Datenrahmen in pyspark heraus laufen?