使用 python (aos_td) 写入 Teradata
Write to Teradata with python (aos_td)
我有一个 Pandas 数据框,我想将其插入到 Teradata table 中。
with aos_td.default_session(username='my_username', password='my_password',
system='blah.blah.com') as session:
session.executemany("""SCHEMA.TABLE(col1,col2,col3,col4)
VALUES (?,?,?,?)""", df2)
似乎 python 正在尝试将索引作为列包含在内,但它与 Teradata 中的列数不匹配,从而引发此错误:
java.sql.SQLExceptionPyRaisable: java.sql.SQLException: [Teradata JDBC Driver]
[TeraJDBC 15.10.00.14] [Error 256] [SQLState HY000]
Parameter index value 5 is outside the valid range of 1 through 4
我怎样才能让它工作?
要获取没有索引的记录,请使用
.to_records(index=False)
这是使用 aos_td 从 python 写入 Teradata 的完整代码:
with aos_td.default_session(username='my_username', password='my_password',
system='blah.blah.com') as session:
session.executemany("""SCHEMA.TABLE(col1,col2,col3,col4)
VALUES (?,?,?,?)""", df2.to_records(index=False))
您也可以为此使用 SQLAlchemy。
请在与 Teradata 连接后遵循代码:
打开 Teradata 连接
udaExec = teradata.UdaExec (appName="App_Name", version="1.0",logConsole=False)
session = udaExec.connect(method="odbc", system='System_Details',
username=getpass.getuser(), password=getpass.getpass());
%load_ext sql
try:
%sql $connection_string
except Exception as e:
print(e)
正在从 Python Dataframe 创建新的 Teradata Table..
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)
正在将 Dataframe 写入 Teradata
df.to_sql('dff2', con=engine)
engine.execute("SELECT * FROM dff2").fetchall()
我有一个 Pandas 数据框,我想将其插入到 Teradata table 中。
with aos_td.default_session(username='my_username', password='my_password',
system='blah.blah.com') as session:
session.executemany("""SCHEMA.TABLE(col1,col2,col3,col4)
VALUES (?,?,?,?)""", df2)
似乎 python 正在尝试将索引作为列包含在内,但它与 Teradata 中的列数不匹配,从而引发此错误:
java.sql.SQLExceptionPyRaisable: java.sql.SQLException: [Teradata JDBC Driver]
[TeraJDBC 15.10.00.14] [Error 256] [SQLState HY000]
Parameter index value 5 is outside the valid range of 1 through 4
我怎样才能让它工作?
要获取没有索引的记录,请使用
.to_records(index=False)
这是使用 aos_td 从 python 写入 Teradata 的完整代码:
with aos_td.default_session(username='my_username', password='my_password',
system='blah.blah.com') as session:
session.executemany("""SCHEMA.TABLE(col1,col2,col3,col4)
VALUES (?,?,?,?)""", df2.to_records(index=False))
您也可以为此使用 SQLAlchemy。
请在与 Teradata 连接后遵循代码:
打开 Teradata 连接
udaExec = teradata.UdaExec (appName="App_Name", version="1.0",logConsole=False)
session = udaExec.connect(method="odbc", system='System_Details',
username=getpass.getuser(), password=getpass.getpass());
%load_ext sql
try:
%sql $connection_string
except Exception as e:
print(e)
正在从 Python Dataframe 创建新的 Teradata Table..
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)
正在将 Dataframe 写入 Teradata
df.to_sql('dff2', con=engine)
engine.execute("SELECT * FROM dff2").fetchall()