Python 3.x 如何从Teradata';将DBC.QRYLOGSQL转换为数据帧
问题:通过Python代码对DBC.QRYLOGSQL运行Teradata查询,然后加载到数据帧时;我遇到以下问题:Python 3.x 如何从Teradata';将DBC.QRYLOGSQL转换为数据帧,python-3.x,pandas,dataframe,teradata,Python 3.x,Pandas,Dataframe,Teradata,问题:通过Python代码对DBC.QRYLOGSQL运行Teradata查询,然后加载到数据帧时;我遇到以下问题: 仅显示DBC.QRYLOGSQL SqlTextInfo列中包含的LOB的前几行 它看起来充满了正则表达式 df.SqlTextInfo值的示例: pd.options.display.max_colwidth = 300 SEL\rA.*\r--B.ACCT\U KEY作为客户ACCT\U KEY 问题: pd.options.display.max_colwidth =
pd.options.display.max_colwidth = 300
SEL\rA.*\r--B.ACCT\U KEY作为客户ACCT\U KEY
问题:
pd.options.display.max_colwidth = 300
import teradata;
#Establish the connection to the Teradata database
udaExec = td.UdaExec (appName="HelloWorld", version="1.0", logConsole=False)
session = udaExec.connect(method="odbc",
system="HOSTNAME",
username="USERNAME",
password="PASSWORD",
driver="Teradata")
#query to fetch the row of data from the DBC.QRYLOGSQL table in Teradata
query = "SELECT QueryID, SqlTextInfo FROM DBC.QRYLOGSQL WHERE QueryID = 12345"
#Fetch the data from Teradata using Pandas Dataframe
df = pd.read_sql(query, session)
counter = len(df)
步骤1-验证DBC.QRYLOGSQL.SqlTextInfo LOB的完整字符串长度是否已加载,而不仅仅是从运行df.head()中看到的内容。 运行以下命令:
df['SqlTextInfo'].str.len()
结果:
pd.options.display.max_colwidth = 300
注意:字符串的长度远大于运行df.head()后在列中显示的长度
步骤2:从df['SqlTextInfo']中删除正则表达式
# Take dataframe column as a series and convert
# to String Data Type the load as a new column to the existing data frame
df['SQL_Cleaned'] = pd.Series(df['SqlTextInfo'], dtype="string")
步骤3:查看数据框时显示SQL的全文:
pd.options.display.max_colwidth = 300