ошибка разрешений ai-platform + gsutil: AttributeError: у объекта 'GFile' нет атрибута 'readable' - PullRequest
0 голосов
/ 01 апреля 2020

Возникла ошибка при чтении CSV-файла 3/13/2020, который передается из gcs. Проверены права доступа к файлам на платформе ai после загрузки

соответствующих документов: https://www.tensorflow.org/api_docs/python/tf/io/gfile/GFile (похоже, что читаемое свойство было удалено ...)

команды:

sh.gsutil('cp',GCS_PATH,raw_rating_path)
with tf.io.gfile.GFile(raw_rating_path) as f:
   df = pd.read_csv(f)

проверенный файл является локальным и имеет следующие разрешения:

-rw-rw-rw- 1 root root 32617551 Apr  1 20:24 /tmp/placeScores.csv

ошибка (немного очищена из необработанных журналов ai-платформы):

File "/root/.local/lib/python3.7/site-packages/pandas/io/parsers.py", line 676, in parser_f
return _read(filepath_or_buffer, kwds)
File "/root/.local/lib/python3.7/site-packages/pandas/io/parsers.py", line 448, in _read
parser = TextFileReader(fp_or_buf, **kwds)
File "/root/.local/lib/python3.7/site-packages/pandas/io/parsers.py", line 880, in __init__
self._make_engine(self.engine)
File "/root/.local/lib/python3.7/site-packages/pandas/io/parsers.py", line 1114, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/root/.local/lib/python3.7/site-packages/pandas/io/parsers.py", line 1880, in __init__
src = TextIOWrapper(src, encoding=encoding, newline="")
AttributeError: 'GFile' object has no attribute 'readable'

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

При чтении документа Tensor Flow кажется, что вы забыли параметр «mode» в функции «tf.io.gfile.GFile (raw_rating_path)», согласно этому документу это должно быть «tf.io.gfile.GFile». (raw_rating_path, mode = 'r') ".

0 голосов
/ 03 апреля 2020

Удалена блокировка потока tf.io.gfile.GFile, и снова удалось успешно прочитать данные. Непонятно, что пошло не так на платформе ai, так как она запускалась локально с tf.io.gfile.GFile. Это может быть проблема с установкой tf на ai-platform tenorflow build 2.1

df = data_io.read_csv(raw_rating_path)
# with tf.io.gfile.GFile(raw_rating_path, 'r') as f:
#   df = pd.read_csv(f)
...