为了账号安全,请及时绑定邮箱和手机立即绑定

Dask 如何在 Python 中从 SQL Server 读取数据

Dask 如何在 Python 中从 SQL Server 读取数据

慕后森 2022-10-05 17:53:13
我必须使用 dask 数据框,因为我的数据有 1.5 亿行和 50,000 列我试着用conn = pyodbc.connect('Driver={SQL Server};'                      'Server=DELL;'                      'Database=DB;'                      'Trusted_Connection=yes;')df_features = dd.read_sql_table(table="Features" , con=conn , index_col="ID")我收到了这个错误TypeError: read_sql_table() missing 1 required positional argument: 'uri'所以我尝试了这个df_features = dd.read_sql_table(table="Features" , uri="mssql+pyodbc:///?odbc_connect=Driver={SQL Server}; Server=DELL; Database=DB; Trusted_Connection=yes;", index_col="ID")并得到了这个错误OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver]Neither DSN nor SERVER keyword supplied (0) (SQLDriverConnect)')(Background on this error at: http://sqlalche.me/e/e3q8)如何在 dask 数据框中连接到 SQL Server?
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

你需要一个 URI,而不是一些连接对象。此 URI 的格式必须是 SQLalchemy 可以理解的格式,因此请阅读他们的文档以了解如何为 ODBC 设置格式。

文档:https ://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pyodbc

原因是,Dask 需要能够序列化和传递任务,但不能序列化连接对象。但是,如果您只使用线程,则可以传递一个 SQLalchemy 引擎对象(这是在 master 中)。


查看完整回答
反对 回复 2022-10-05
?
绝地无双

TA贡献1946条经验 获得超4个赞

Windows ODBC 驱动程序管理器在关键字和=


以下应该可以解决问题:


df_features = dd.read_sql_table(

    table="Features",

    uri="mssql+pyodbc:///?odbc_connect=DRIVER={SQL Server};SERVER=my.db.server;DATABASE=DB;Trusted_Connection=yes;",

    index_col="ID"

)


查看完整回答
反对 回复 2022-10-05
  • 2 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信