Разрешает ли Dask индексирование с помощью серии Dask?

Я наблюдаю поведение, которое похоже на ошибку в Dask, но я хочу убедиться, что я не делаю что-то не так.

У меня есть фрейм данных Dask под названием labeled_texts. Он содержит столбец с названием «текст». Я вычисляю серию Dask под названием label_rows, которая содержит логические значения и имеет ту же длину, что и labeled_texts. Я использую его для индексации в labeled_texts, и из этого меньшего фрейма данных я получаю столбец «текст» вот так.

labeled_text[label_rows]["text"].compute()

Когда я запускаю указанную выше строку, я получаю KeyError: 'text' путь вниз в коде Dask / Pandas. Однако следующие команды работают

labeled_text[label_rows].compute()["text"]
labeled_text[label_rows.compute()]["text"]

Я думаю, что все три команды должны давать одинаковый результат, а первая не должна вызывать ошибку. Это верно?

К сожалению, я не могу придумать сценарий минимального воспроизведения, который я могу опубликовать здесь. Проблема постоянно возникает в одном конкретном кластере, но тот же код и данные, работающие на другом компьютере, работают нормально. (Что еще больше заставляет меня думать, что это ошибка Dask.)

Я не ожидаю, что без лучшего сценария воспроизведения кто-нибудь сможет решить эту проблему за меня. Я просто хочу убедиться, что не делаю что-то не так.


Вот полная трассировка стека.

  Traceback (most recent call last):

  ...my code that ultimately calls compute()...

    File "/usr/local/lib/python3.6/site-packages/dask/base.py", line 175, in compute
      (result,) = compute(self, traverse=False, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/dask/base.py", line 446, in compute
      results = schedule(dsk, keys, **kwargs)
    File "/usr/local/lib/python3.6/site-packages/distributed/client.py", line 2510, in get
      results = self.gather(packed, asynchronous=asynchronous, direct=direct)
    File "/usr/local/lib/python3.6/site-packages/distributed/client.py", line 1812, in gather
      asynchronous=asynchronous,
    File "/usr/local/lib/python3.6/site-packages/distributed/client.py", line 753, in sync
      self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
    File "/usr/local/lib/python3.6/site-packages/distributed/utils.py", line 337, in sync
      six.reraise(*error[0])
    File "/usr/local/lib/python3.6/site-packages/six.py", line 693, in reraise
      raise value
    File "/usr/local/lib/python3.6/site-packages/distributed/utils.py", line 322, in f
      result[0] = yield future
    File "/usr/local/lib/python3.6/site-packages/tornado/gen.py", line 1133, in run
      value = future.result()
    File "/usr/local/lib/python3.6/site-packages/distributed/client.py", line 1668, in _gather
      six.reraise(type(exception), exception, traceback)
    File "/usr/local/lib/python3.6/site-packages/six.py", line 692, in reraise
      raise value.with_traceback(tb)
    File "/usr/local/lib/python3.6/site-packages/dask/optimization.py", line 1059, in __call__
      return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args)))
    File "/usr/local/lib/python3.6/site-packages/dask/core.py", line 149, in get
      result = _execute_task(task, cache)
    File "/usr/local/lib/python3.6/site-packages/dask/core.py", line 119, in _execute_task
      return func(*args2)
    File "/usr/local/lib/python3.6/site-packages/pandas/core/frame.py", line 2980, in __getitem__
      indexer = self.columns.get_loc(key)
    File "/usr/local/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 2899, in get_loc
      return self._engine.get_loc(self._maybe_cast_indexer(key))
    File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
    File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
    File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
    File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
  KeyError: 'text'

person W.P. McNeill    schedule 21.02.2020    source источник


Ответы (1)


Мне ничего не прилипает. Как вы предлагаете, я рекомендую попытаться предоставить минимальный воспроизводитель.

person MRocklin    schedule 23.02.2020