为什么在dask中运行.compute()导致"致命的Python错误:GC对象已被跟踪"

时间:2015-12-07 07:38:03

标签: python windows jupyter dask

我使用Jupyter笔记本版本4.0.6运行Windows 10,使用Python 2.7.10和Anaconda 2.4.0(64位)

我正在关注https://jakevdp.github.io/blog/2015/08/14/out-of-core-dataframes-in-python/的博客/教程:

from dask import dataframe as dd
columns = ["name", "amenity", "Longitude", "Latitude"]
data = dd.read_csv("POIWorld.csv", usecols=columns)
with_name = data[data.name.notnull()]
with_amenity = data[data.amenity.notnull()]
is_starbucks = with_name.name.str.contains('[Ss]tarbucks')
is_dunkin = with_name.name.str.contains('[Dd]unkin')
starbucks = with_name[is_starbucks]
dunkin = with_name[is_dunkin]
dd.compute(starbucks.name.count(), dunkin.name.count())

这最后一个语句导致在运行Jupyter的命令提示符会话中出现错误,如下所示:

  

致命Python错误:已跟踪GC对象

阅读类似的问题可能是处理Python处理内存的dask源代码中的一个可能问题,我希望我只是遗漏了一些东西。

我在本教程中遇到过header和dask的先前问题,并且必须运行:

pip install git+https://github.com/blaze/dask.git --upgrade

类似的问题没有帮助:

Fatal Python error: GC object already tracked

Debugging Python Fatal Error: GC Object already Tracked

1 个答案:

答案 0 :(得分:2)

某些版本的Pandas不能很好地处理多个线程,尤其是pandas.read_csv。这些已在最近版本的Pandas中修复,因此可以通过以下方法解决此问题:

conda install pandas

pip install pandas --upgrade