Mars Tensor、DataFrame 和 Remote 需要调用 .execute() 来触发执行。
.execute()
>>> import mars.tensor as mt >>> import mars.dataframe as md >>> df = md.DataFrame(mt.random.rand(3, 3)) >>> df DataFrame <op=DataFrameFromTensor, key=182b756be8a9f15c937a04223f11ffba> >>> df.execute() 0 1 2 0 0.167771 0.568741 0.877450 1 0.037518 0.796745 0.072169 2 0.052900 0.936048 0.307194
调用 .execute() 会返回 Mars 对象自身,.fetch() 可以用来获取结果。
.fetch()
>>> import mars.remote as mr >>> f = mr.spawn(lambda x: x + 1, args=(10,)) >>> f.execute() Object <op=RemoteFunction, key=8a9ef53cb93cd7698d71512ec813682b> >>> f.fetch() 11
然而,有一些函数或方法会立即触发执行。
迭代 DataFrame,包括 mars.dataframe.DataFrame.iterrows() 和 mars.dataframe.DataFrame.itertuples()。
mars.dataframe.DataFrame.iterrows()
mars.dataframe.DataFrame.itertuples()
DataFrame 和 Series 上所有的绘图函数,包括 mars.dataframe.DataFrame.plot(), mars.dataframe.DataFrame.plot.bar() 等等。
mars.dataframe.DataFrame.plot()
mars.dataframe.DataFrame.plot.bar()
Mars learn 里的所有函数,包括 fit、predict 等等。
fit
predict
注解
0.5.2 中新增
指定 wait=False 可以异步执行,它返回一个 Future 对象。
wait=False
>>> import mars.tensor as mt >>> a = mt.random.rand(100, 10) >>> future = a.mean().execute(wait=False) >>> future.done() True >>> future.result() 0.49123541512823077