【发布时间】:2019-01-07 04:37:53
【问题描述】:
可能是这个question 的延续,从map_partitions 的dask 文档示例开始工作。
import dask.dataframe as dd
df = pd.DataFrame({'x': [1, 2, 3, 4, 5], 'y': [1., 2., 3., 4., 5.]})
ddf = dd.from_pandas(df, npartitions=2)
from random import randint
def myadd(df):
new_value = df.x + randint(1,4)
return new_value
res = ddf.map_partitions(lambda df: df.assign(z=myadd)).compute()
res
在上面的代码中,randint 只被调用一次,而不是像我期望的那样每行调用一次。怎么会?
输出:
X Y Z
1 1 4
2 2 5
3 3 6
4 4 7
5 5 8
【问题讨论】: