擅长:python、mysql、java
<p>对于joblib创建的每个进程,需要对整个数据帧进行pickle和unpickle操作。在实践中,这是非常缓慢的,也需要很多倍的记忆。</p>
<p>一种解决方案是使用表格式将数据存储在HDF(<code>df.to_hdf</code>)中。然后可以使用<code>select</code>来选择数据子集以进行进一步处理。实际上,这对于交互使用来说太慢了。这也是非常复杂的,你的工人将需要存储他们的工作,以便它可以在最后一步巩固。</p>
<p>另一种方法是用<code>target='parallel'</code>探索<code>numba.vectorize</code>。这将需要使用NumPy数组而不是Pandas对象,因此它也有一些复杂性成本。</p>
<p>从长远来看,<a href="https://github.com/blaze/dask" rel="noreferrer">dask</a>希望能给熊猫带来并行执行,但这不是很快就能实现的。</p>