将 Teradata 查询读入 Pandas
Read Teradata query into Pandas
有没有人找到将 Teradata 查询读入 Pandas 数据框的方法?看起来 SQLAlchemy 没有 Teradata 方言。
http://docs.sqlalchemy.org/en/latest/dialects/
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html
我是用 read_sql
做的。下面是代码片段:
def dqm() :
conn_rw = create_connection()
dataframes = []
srcfile = open('srcqueries.sql', 'rU').read()
querylist = srcfile.split(';')
querylist.pop()
for query in querylist :
dataframes.append(pd.read_sql(query, conn_rw))
close_connection(conn_rw)
return dataframes,querylist
您可以如下创建连接:
def create_connection():
conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=tddb;UID=uid;PWD=pwd;QUIETMODE=YES", autocommit=True,unicode_results=True)
return conn
您可以在此处查看完整代码:GitHub Link
让我知道这是否回答了您的查询。
您可以使用 slqalchemy,但您还需要安装 sqlalchemy-teradata。你可以通过 PIP
pip install sqlachemy-teradata
其余代码保持不变:)
from sqlalchemy import create_engine
import pandas as pd
user, pasw, host = 'username','userpass', 'hostname'
# connect
td_engine = create_engine('teradata://{}:{}@{}:22/'.format(user,pasw,hostname))
# execute sql
query = 'select * from dbc.usersV'
result = td_engine.execute(query)
#To read your query to Pandas
df = pd.read_sql(query,td_engine)
有没有人找到将 Teradata 查询读入 Pandas 数据框的方法?看起来 SQLAlchemy 没有 Teradata 方言。
http://docs.sqlalchemy.org/en/latest/dialects/
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html
我是用 read_sql
做的。下面是代码片段:
def dqm() :
conn_rw = create_connection()
dataframes = []
srcfile = open('srcqueries.sql', 'rU').read()
querylist = srcfile.split(';')
querylist.pop()
for query in querylist :
dataframes.append(pd.read_sql(query, conn_rw))
close_connection(conn_rw)
return dataframes,querylist
您可以如下创建连接:
def create_connection():
conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=tddb;UID=uid;PWD=pwd;QUIETMODE=YES", autocommit=True,unicode_results=True)
return conn
您可以在此处查看完整代码:GitHub Link 让我知道这是否回答了您的查询。
您可以使用 slqalchemy,但您还需要安装 sqlalchemy-teradata。你可以通过 PIP
pip install sqlachemy-teradata
其余代码保持不变:)
from sqlalchemy import create_engine
import pandas as pd
user, pasw, host = 'username','userpass', 'hostname'
# connect
td_engine = create_engine('teradata://{}:{}@{}:22/'.format(user,pasw,hostname))
# execute sql
query = 'select * from dbc.usersV'
result = td_engine.execute(query)
#To read your query to Pandas
df = pd.read_sql(query,td_engine)