Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dask中的read_sql_表返回NoSuchTableError_Python_Pandas_Sqlalchemy_Dask_Pydoc - Fatal编程技术网

Python Dask中的read_sql_表返回NoSuchTableError

Python Dask中的read_sql_表返回NoSuchTableError,python,pandas,sqlalchemy,dask,pydoc,Python,Pandas,Sqlalchemy,Dask,Pydoc,我有一个使用pandas的read_sql,它工作得很好。然而,当我试图使用相同的逻辑在Dask下重新创建相同的数据帧时。它没有给我这样的错误。我确信该表存在于我的SQL数据库中 熊猫工程: 因为Dask使用的是来自sqlalchemy的完整URL,所以我还尝试在sqlalchemy中重新创建相同的连接,并且效果良好。它只是让我困惑,为什么它在达斯克不起作用 sqlalchemy#有效: Dask#无此表错误: import urllib import sqlalchemy as sa impo

我有一个使用pandas的read_sql,它工作得很好。然而,当我试图使用相同的逻辑在Dask下重新创建相同的数据帧时。它没有给我这样的错误。我确信该表存在于我的SQL数据库中

熊猫工程:

因为Dask使用的是来自sqlalchemy的完整URL,所以我还尝试在sqlalchemy中重新创建相同的连接,并且效果良好。它只是让我困惑,为什么它在达斯克不起作用

sqlalchemy#有效:

Dask#无此表错误:

import urllib
import sqlalchemy as sa
import dask.dataframe as dd
from sqlalchemy.engine.url import make_url

params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};\
                             SERVER=my_server;\
                             DATABASE=db_name;\
                             Trusted_Connection=yes;")
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
url = make_url(conn_str)
df = dd.read_sql_table('my_table', url, index_col='ID')
print(df.head())

有没有人遇到过相同/类似的问题?任何想法都是非常感谢的!提前感谢。

在不了解有关SQL Server如何设置的更多详细信息的情况下,我相信这将是Dask文档中特定于SQL Server的,您需要提供
schema=
关键字,如下所示:

dftest = dd.read_sql_table(table="table_name_only", uri=uri, index_col="somekey", schema="schema_name", divisions=[1,2,3])
请注意,
uri
这里是SQLAlchemy字符串,而不是连接对象


您是否尝试过传递
conn_str
而不是重新格式化的
url
?我传递了,它给了我相同的错误!:(关于
pd.read\u sql\u table(“my\u table”,engine)”如何?
?熊猫可以使用
pd.read\u sql()
很好地工作。但是,据我所知,在Dask下,URL必须是一个完整的sqlalchemy URL,而不是一个引擎。@Xwnola对此有任何更新吗?我面临同样的问题
import urllib
import sqlalchemy as sa
import dask.dataframe as dd
from sqlalchemy.engine.url import make_url

params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};\
                             SERVER=my_server;\
                             DATABASE=db_name;\
                             Trusted_Connection=yes;")
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
url = make_url(conn_str)
df = dd.read_sql_table('my_table', url, index_col='ID')
print(df.head())
dftest = dd.read_sql_table(table="table_name_only", uri=uri, index_col="somekey", schema="schema_name", divisions=[1,2,3])