2

我收到此参数的此错误:

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__'

有人知道是什么问题吗?

4

1 回答 1

1

table参数必须是现有表(因此是字符串或sa.Table实例)或完整的 sqlalchemy 语句(例如,sqlalchemy.sql.select()),您可以在其中定义要获取的完整列集。这样做的原因是,我们不尝试在这里解析通用查询,这可能是特定于后端的。您可以自己利用 sqlalchemy 将文本查询转换为该函数的结构化语句。

于 2017-11-25T16:18:22.617 回答