Une itération à travers une Étincelle CA
De départ avec une Étincelle DataFrame de créer un vecteur de la matrice pour de plus amples traitement des analyses.
feature_matrix_vectors = feature_matrix1.map(lambda x: Vectors.dense(x)).cache()
feature_matrix_vectors.first()
La sortie est un tableau de vecteurs. Certains de ces vecteurs ont une valeur null dans leur
>>> DenseVector([1.0, 31.0, 5.0, 1935.0, 24.0])
...
>>> DenseVector([1.0, 1231.0, 15.0, 2008.0, null])
De ce que je veux parcourir le vecteur de la matrice et de créer un LabeledPoint tableau avec des 0 (zéro) si le vecteur contient une valeur null, sinon avec un 1.
def f(row):
if row.contain(None):
LabeledPoint(1.0,row)
else:
LabeledPoint(0.0,row)
J'ai essayé de parcourir le vecteur de la matrice à l'aide de
feature_matrix_labeledPoint = (f(row) for row in feature_matrix_vectors) # create a generator of row sums
next(feature_matrix_labeledPoint) # Run the iteration protocol
mais cela ne fonctionne pas.
TypeError: 'PipelinedRDD' object is not iterable
Toute aide serait super
Ceci AFIN de répondre a l'détails stackoverflow.com/a/25296061/429476
OriginalL'auteur Eoin Lane | 2015-06-29
Vous devez vous connecter pour publier un commentaire.
RDDs
sont pas une goutte de remplacement pour un Python listes. Vous devez utiliser soit des actions ou des transformations qui sont disponibles sur un mêmeRDD
. Ici, vous pouvez tout simplement utilisermap
:OriginalL'auteur zero323