Python 任务期间的Dask进度
使用dask数据帧Python 任务期间的Dask进度,python,pandas,dask,tqdm,dask-dataframe,Python,Pandas,Dask,Tqdm,Dask Dataframe,使用dask数据帧 df=dask.dataframe.from_pandas(df,npartitions=5) 系列=df.apply(函数) future=client.compute(系列) 进步(未来) 在jupyter笔记本中,我可以看到每个分区(例如2/5)完成了多少apply()调用的进度条。 dask是否有方法报告每个分区内的进度? 类似于熊猫的TQMprogress\u apply() 如果您的意思是,每次调用func()的完成程度如何,那么不,Dask无法知道这一点。Das
df=dask.dataframe.from_pandas(df,npartitions=5)
系列=df.apply(函数)
future=client.compute(系列)
进步(未来)
在jupyter笔记本中,我可以看到每个分区(例如2/5)完成了多少apply()调用的进度条。dask是否有方法报告每个分区内的进度?
类似于熊猫的TQM
progress\u apply()
如果您的意思是,每次调用func()
的完成程度如何,那么不,Dask无法知道这一点。Dask调用在自己的python线程中运行的python函数(python线程不能被另一个线程中断),Dask只知道调用是否完成
您可能会想到调用一个具有一些内部回调或其他报告系统的函数,但我想我从未见过类似的情况。为什么不?Dask对每个数据帧行调用
func
,因此Dask知道每行何时完成func
(如tqdm)。我想以某种方式注册一个“钩子”..Dask不为每一行调用func,它调用pandas的apply
,有没有办法将apply替换为tqdm progress apply?或者,手动向daskYes报告进度,您可以为apply编写自己的包装器,以某种方式通知客户机,但这是未知领域,您只能靠自己。如果只使用线程,则前者可能是可能的,但我怀疑输出是否合理。