Почему запуск .compute() в dask вызывает фатальную ошибку Python: объект GC уже отслежен

Я использую Windows 10 с блокнотом 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 следующим образом:

Неустранимая ошибка Python: объект GC уже отслежен

Читая подобные вопросы, это может быть возможной проблемой в исходном коде для dask, связанного с обработкой памяти Python, я надеюсь, что просто что-то упустил.

У меня была предыдущая проблема с заголовками и dask в этом руководстве, и мне пришлось запустить:

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

Подобные вопросы, которые не помогают:

Неустранимая ошибка Python: объект GC уже отслежен

Отладка фатальной ошибки Python: объект GC уже отслежен


person bronstad    schedule 07.12.2015    source источник
comment
Попробуйте это с предыдущей версией Pandas. Я считаю, что в Pandas 0.17.1 появились некоторые небезопасные функции потоков. Попробуйте pip install pandas==0.17.0   -  person MRocklin    schedule 07.12.2015


Ответы (1)


Некоторые версии Pandas плохо обрабатывают несколько потоков, особенно для pandas.read_csv. Они исправлены в последних версиях Pandas, поэтому эту проблему, вероятно, можно решить одним из следующих способов:

conda install pandas

pip install pandas --upgrade
person MRocklin    schedule 09.06.2016