2017-07-22 6 views
0

Quand je tentais d'obtenir les lignes de mon jeu de données appartenant à la colonne de userid = 1 à la structure de données de sframe de graphlab, sf[sf['userid'] == 1],À quoi sert SFrame.materialize() dans Graphlab?

je suis arrivé les lignes, mais je aussi reçu ce message, [? rows x 6 columns] Note: Only the head of the SFrame is printed. This SFrame is lazily evaluated. You can use sf.materialize() to force materialization.

Je passé à travers la documentation, mais je ne peux pas comprendre ce que fait sf.materialize()! Quelqu'un pourrait-il m'aider ici.

Répondre

0

La note vous indique que l'opération (filtrage dans votre cas) n'est pas immédiatement appliquée à l'ensemble de dates complètes, mais seulement à une partie de celle-ci. C'est pour économiser des ressources - au cas où l'opération ne ferait pas ce que vous vouliez, les ressources seront gaspillées en appliquant l'opération sur un ensemble de données potentiellement important mais seulement sur la partie nécessaire (tête dans votre cas, qui est sortie par défaut). La matérialisation force la propagation de l'opération sur l'ensemble des données.

+0

Merci qui aide! comment utiliser cette fonction de matérialisation alors? – harishaaram

+0

@harishaaram C'est une méthode de SFrame, donc vous utilisez comme 'sf.materialize' (c'est-à-dire comme indiqué dans la note). Vous pouvez trouver un peu plus d'informations [ici] (https://turi.com/learn/userguide/sframe/data-manipulation.html). –