我在这个参数中遇到了这个错误:
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__'
有人知道这是什么问题吗?
答案 0 :(得分:0)
table
参数必须是现有表(因此是字符串或sa.Table
实例)或完整的sqlalchemy语句(例如,sqlalchemy.sql.select()
),您可以在其中定义要获取的完整列集。这样做的原因是,我们不会尝试在此处解析通用的查询,这可能是后端特定的。您可以自己利用sqlalchemy将文本查询转换为此函数的结构化语句。