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

2024-09-30 18:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行的是Windows10和Jupyter笔记本电脑版本4.0.6,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的命令提示符会话中出现错误,如下所示:

Fatal Python error: GC object already tracked

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

在本教程中,我曾遇到过头文件和dask文件的问题,必须运行:

^{pr2}$

类似的问题也无济于事:

Fatal Python error: GC object already tracked

Debugging Python Fatal Error: GC Object already Tracked


Tags: columnsnamedataiswithjupyter教程gc