Я успешно внес одну таблицу, используя dask read_sql_table из базы данных оракула. Однако, когда я пытаюсь вывести другую таблицу, я получаю эту ошибку KeyError: «Для ключа в аргументе сопоставления dtype может использоваться только имя столбца.»
Я проверилмоя строка подключения и схема, и все это в порядке. Я знаю, что имя таблицы существует, и столбец, который я пытаюсь использовать в качестве индекса, является первичным ключом таблицы в базе данных Oracle.
Может кто-нибудь объяснить, почему эта ошибка возникает, когда явно существует имя столбца?
Я знаю, что могу использовать блок Pandas, но лучше использовать dask в этом сценарии.
ниже показано, как я подключаюсь к базе данных oracle и последнему биту сообщения об ошибке
host='*******'
port='*****'
sid='****'
user='******'
password='*****'
con_string = 'oracle://' + user + ':' + password + '@' + host + ':' + port + '/' + sid
engine = create_engine(con_string)
df =ddf.read_sql_table('table_name', uri=con_string, index_col='id', npartitions=None, schema='*****')
~ \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas \ core \ generic.py в astype (self, dtype, copy, errors, ** kwargs) 5855
если col_name не в самом себе: 5856 повысить KeyError (-> 5857 "Только ключ столбца может использоваться для ключа" 5858 "в аргументе отображения dtype." 5859)
KeyError: 'Только aИмя столбца можно использовать для ключа в аргументе сопоставления dtype. '
Сегодня для другой таблицы я добавил все имена столбцов в ddf.read_sql_table, и запрос сработал. Но для другой таблицы я попытался сделать то же самое, перечислив все имена столбцов, и я получил KeyError выше.
Спасибо всем.