Ошибка ключа для index_col при использовании Dask в Python - PullRequest
0 голосов
/ 20 июня 2020

Хотите обработать большой файл (8 ГБ) с помощью Panads, используя Dask.

Код следующим образом, отредактирован для безопасности.

import dask.dataframe as dd
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy import Column, MetaData, Table
from sqlalchemy.sql import  select
from getpass import getpass
import psycopg2
import missingno as msno
import dask.dataframe as dd 

#PASSWORD INPUT PROMPT
pwd = getpass('password')

username = 'abcdefg'
password = pwd
server = 'abcdefg.redshift.amazonaws.com'
database = 'abcdefg'

connection_string = f'postgresql+psycopg2://{username}:{password}@{server}/{database}'

engine = create_engine(connection_string)

metadata = MetaData()

t = Table('table_name', metadata,
    schema='schema_name')


select([t]).limit(5).alias('mydata')

dd.read_sql_table(t, connection_string, index_col='id', npartitions=50, columns=None) 

Когда я явно указываю данный столбец индекса таблицу, я получаю следующую ошибку:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-26-181aa1bed41e> in <module>
----> 1 dd.read_sql_table(t, connection_string, index_col='index_col_name', npartitions=50, columns=None)

//anaconda3/lib/python3.7/site-packages/dask/dataframe/io/sql.py in read_sql_table(table, uri, index_col, divisions, npartitions, limits, columns, bytes_per_chunk, head_rows, schema, meta, engine_kwargs, **kwargs)
    104 
    105     index = (
--> 106         table.columns[index_col] if isinstance(index_col, string_types) else index_col
    107     )
    108     if not isinstance(index_col, string_types + (elements.Label,)):

//anaconda3/lib/python3.7/site-packages/sqlalchemy/util/_collections.py in __getitem__(self, key)
    192 
    193     def __getitem__(self, key):
--> 194         return self._data[key]
    195 
    196     def __delitem__(self, key):

KeyError: 'index_col_name'

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

Кто-нибудь может дать совет?

...