2017-11-25 123 views
1

我得到這個錯誤與此PARAMS:DASK read_sql_table錯誤: 'instancemethod' 對象有沒有屬性 '__getitem__'

import pandas as pd 
import numpy as np 
from sqlalchemy import create_engine 
import dask.dataframe as dd 
from sqlalchemy.sql import text 
query = text("Some SQL statement") 
df = dd.read_sql_table(table=query,uri='Some postgreSQL DB',index_col='id') 

息率這樣的錯誤:

/usr/local/lib/python2.7/dist-packages/dask/dataframe/io/sql.pyc in read_sql_table(table, uri, index_col, divisions, npartitions, limits, columns, bytes_per_chunk, **kwargs) 
    73       schema=schema) 
    74 
---> 75  index = (table.columns[index_col] if isinstance(index_col, six.string_types) 
    76    else index_col) 
    77  if not isinstance(index_col, six.string_types + (elements.Label,)): 

TypeError: 'instancemethod' object has no attribute '__getitem__' 

有人知道有什麼問題?

+1

'read_sql_table'作爲第一個參數'table' - 一個字符串:'name_of_the_table'。您正在傳遞SQL查詢而不是表名。 – Primer

回答

0

table參數必須是現有的表(和因此是一個字符串或一sa.Table實例)或全SQLAlchemy的聲明(例如,sqlalchemy.sql.select()),其中定義的完整的一組列的要被取出。原因是,我們不試圖解析這裏的通用查詢,這可能是後端特定的。您可以利用sqlalchemy自己將文本查詢轉換爲此函數的結構化語句。

相關問題