Прочитать таблицу ORCL в Dask dataframe - PullRequest
0 голосов
/ 01 февраля 2019

Использование cx_Oracle коннектора для чтения в pandas df работает нормально, например:

import pandas as pd
import cx_Oracle

conn_str = u'username/password@host:port/service_name'
conn = cx_Oracle.connect(conn_str)
tablequery="select * from largetable where rownum <= 5000000"
pd_df = pd.read_sql(tablequery, conn)

Однако при попытке прочитать эту таблицу в фрейме данных Dask ...

import dask.dataframe as dd

sqlalchemy_uri_orcl = "oracle:////username:password@host:port//service_name" 

URI из здесь с escape-символами для Windows 10 и:

dask_df = dd.read_sql_table(table = tablequery, uri = sqlalchemy_uri_orcl, index = "IDX")

вызов dd из здесь , генерирует следующие ошибки:

Error message: DatabaseError: (cx_Oracle.DatabaseError) ORA-12545: Connect failed because target host or object does not exist

Без экранирования «/» в URI ошибка немного отличается:

NoSuchTableError:

Не совсем точно, как передать соединитель cx_Oracle на вызов dask, если требуется

Спасибо

1 Ответ

0 голосов
/ 01 февраля 2019

Я не уверен, что ваш URI выглядит правильно.В других ответах они используют следующее, что, я думаю, работает и с Даском:

host=hostname
port=port
sid='sid'
user='username'
password='password'
sid = cx_Oracle.makedsn(host, port, sid=sid)

uri = 'oracle://{user}:{password}@{sid}'.format(
    user=user,
    password=password,
    sid=sid
)

...