在Graphlab中使用SFrame.materialize()有什么用?

时间:2017-07-22 15:20:40

标签: python graphlab sframe

当我尝试通过graphlab的sframe数据结构获取属于userid = 1列的数据集行时sf[sf['userid'] == 1]

我收到了行,但是我也收到了这条消息,[? 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.

我已经阅读了文档,但我无法理解sf.materialize()的作用!有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

该注释告诉您,操作(在您的情况下过滤)不会立即应用于整个日期,而是仅应用于其中的某些部分。这是为了节省资源 - 如果操作没有达到预期的效果,则需要通过对整个可能大的数据集应用操作来浪费资源,但仅限于所需的部分(在您的情况下,在默认情况下输出) )。物化强制操作在整个数据集上的传播。

答案 1 :(得分:0)

@harishaaram这是 graphlab 库中的一种方法,因此用作

gl.SFrame.materialize(sf)
dat=sf[sf['userid'] == 1]
dat