我尝试设置一个Jupyter笔记本,使用sqlmagic(%and%%表示法)访问ibmdb2z数据库。在
我跟随本教程安装DB2 SQLAlchemy驱动程序: https://blog.4loeser.net/2016/11/sql-magic-in-notebooks-in-ibm-data.html
现在我在Jupyter实验室的代码如下:
!pip install --user ipython-sql
!pip install --user ibm_db
!pip install --user ibm_db_sa
import getpass
import ibm_db
import ibm_db_sa
import sqlalchemy
user = input("User: ")
passw = getpass.getpass("Passwort: ")
# loads the SQL magic extensions
%load_ext sql
%sql db2+ibm_db://$user:$passw@xxx.xxx.xx:55555/XXX
但会导致以下错误:
^{pr2}$我可以排除用户名密码或驱动程序中的错误,因为它是使用pandas works实现的:
import pandas as pd
from sqlalchemy.engine import create_engine
engine = create_engine("db2+ibm_db://"+user+":"+passw+"@xxx.xxx.xx:55555/XXX")
#Read Data query into a DataFrame
df = pd.read_sql("""select * from XXX.XXXXX limit 1""", engine)
df.head()
关键字CURRENT似乎有一个问题,但是我无法理解pandas和sqlmagic之间的区别。在
这可能是ibm_db_sa模块中的已知问题。 看看这个issue,它目前似乎正在等待修复。 最好是通过github而不是stackoverflow来解决这个问题。在
我建议使用ibm_db和ibm_db_dbi包装器。请参阅我的db2文章以获得更好的解释
相关问题 更多 >
编程相关推荐