我能找到的一切都表明daskmap_partitions
应该返回dask dataframe对象。但是下面的代码片段和相应的输出(使用logzero
)没有。(请注意-calc_delta返回浮点数的np.array)。
352 logger.debug(type(self.dd))
353 self.dd = self.dd.map_partitions(
354 lambda df: df.assign(
355 duration1=lambda r: calc_delta(r['a'], r['b'])
356 , duration2=lambda r: calc_delta(r['a'], r['c'])
357 )
358 ).compute(scheduler='processes')
359 logger.debug(type(self.dd))
[D 200316 19:19:28探索性:352] <class'dask.dataframe.core.DataFrame'>
[D 200316 19:19:43探索性:359] <class'pandas.core.frame.DataFrame'>
所有指南(有很多技巧)都建议这是向分区的dask数据框添加(逻辑)列的方法。但是,如果它实际上没有返回dask数据帧,则不会。
我想念什么?
问题来源:stackoverflow
难道不是因为您正在调用“计算”吗?
也许这样:
self.dd.map_partitions(
lambda df: df.assign(
duration1=lambda r: calc_delta(r['a'], r['b'])
, duration2=lambda r: calc_delta(r['a'], r['c'])
)
)
实际上返回一个dask数据框。但是随后您调用了应该返回结果的compute,因此是pandas数据框,不是吗?
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。