Прочитать файл GCS в dask dataframe - PullRequest
0 голосов
/ 23 января 2020

Я хочу прочитать CSV-файл, хранящийся в облачном хранилище Google, используя dask dataframe.

Я ввел gcsfs & dask в conda env. на Windows

import dask.dataframe as dd
import gcsfs

project_id = 'my-project'
token_file = 'C:\\path\to\credentials.json'
fs = gcsfs.GCSFileSystem(project=project_id)
gcs_bucket_name = 'my_bucket'

df = dd.read_csv('gs://'+gcs_bucket_name+'/my_file.csv',storage_options={'token': token_file, 'project': project_id})

Я знаю, что неправильно предоставляю файл ключа согласно https://gcsfs.readthedocs.io/en/latest/, но не уверен, как это сделать. Может кто-нибудь помочь, пожалуйста?

Ошибка, которую я получаю -

  File "<ipython-input-XXXXXXXX>", line 1, in <module>
    runfile('C:/path/to/scripts/my_python_script.py', wdir='C:/path/to/scripts')

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/path/to/scripts/my_python_script.py", line 28, in <module>
    df = dd.read_csv('gcs://'+gcs_bucket_name+'/my_file.csv',storage_options={'token': token_file, 'project': project_id})

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\dask\dataframe\io\csv.py", line 578, in read
    **kwargs

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\dask\dataframe\io\csv.py", line 444, in read_pandas
    head = reader(BytesIO(b_sample), **kwargs)

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\pandas\io\parsers.py", line 685, in parser_f
    return _read(filepath_or_buffer, kwds)

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\pandas\io\parsers.py", line 463, in _read
    data = parser.read(nrows)

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\pandas\io\parsers.py", line 1154, in read
    ret = self._engine.read(nrows)

  File "C:\Users\AppData\Local\Continuum\anaconda3\envs\my-rdkit-env\lib\site-packages\pandas\io\parsers.py", line 2059, in read
    data = self._reader.read(nrows)

  File "pandas/_libs/parsers.pyx", line 881, in pandas._libs.parsers.TextReader.read

  File "pandas/_libs/parsers.pyx", line 896, in pandas._libs.parsers.TextReader._read_low_memory

  File "pandas/_libs/parsers.pyx", line 950, in pandas._libs.parsers.TextReader._read_rows

  File "pandas/_libs/parsers.pyx", line 937, in pandas._libs.parsers.TextReader._tokenize_rows

  File "pandas/_libs/parsers.pyx", line 2132, in pandas._libs.parsers.raise_parser_error

ParserError: Error tokenizing data. C error: Expected 4 fields in line 3, saw 134
...