到目前为止,我以前一直使用pandas和cx_Oracle。但是由于RAM的限制,我现在不得不切换到dask。

import pandas as pd
from dask import dataframe as dd
import os
import cx_Oracle as cx


con = cx.connect('USER','userpw' , 'oracle_db',encoding='utf-8')
cursor = con.cursor()

query_V_Branchen = ('''SELECT * FROM DBOWNER.V_BRANCHEN vb''')

daskdf = dd.read_sql_table(query_V_Branchen,con ,index_col= 'RECID')
我尝试这样做,类似于将cx_oracle与pandas一起使用的方式。但是我收到一个名为的AttributeError:
'cx_Oracle.Connection' object has no attribute '_instantiate_plugins'
有什么想法,如果只是包装问题?

最佳答案

请阅读dask doc on SQL:

  • 您应该提供connection string,而不是对象
  • 您应该使用sqlalchemy的表达式语法来提供表名,而不是查询或短语查询。

  • 例如。,
    df = dd.read_sql_table('DBOWNER.V_BRANCHEN',
        'oracle+cx_oracle://USER:userpw@oracle_db', index_col= 'RECID')
    

    关于python - 在dask数据框中加载oracle数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63335328/

    10-11 10:29
    查看更多