是否有人找到了將Teradata查詢讀入Pandas數據框的方法?它看起來像SQLAlchemy沒有Teradata方言。將Teradata查詢讀入Pandas
http://docs.sqlalchemy.org/en/latest/dialects/
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html
是否有人找到了將Teradata查詢讀入Pandas數據框的方法?它看起來像SQLAlchemy沒有Teradata方言。將Teradata查詢讀入Pandas
http://docs.sqlalchemy.org/en/latest/dialects/
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html
我做到了用read_sql
。下面ID代碼剪斷:
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 讓我知道如果這個回答您的查詢。
感謝您的答案!所以你使用pyodbc而不是sqlalchemy來創建連接,對吧? – atm
對。如果您打算安裝它們,我建議您使用brew包管理器。 – minatverma
您可以使用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)
也許看看這個:https://github.com/grisaitis/sqlalchemy-teradata – joris
看起來很有前途,但不幸的是它是爲Python 3編寫的 – atm