Python 3.x 如何从Teradata';将DBC.QRYLOGSQL转换为数据帧

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 =

问题:通过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 = 300
    
  • 如何验证是否已将Teradata的DBC.QRYLOGSQL.SqlTextInfo中的每个LOB全部加载到熊猫数据帧中
  • 我如何验证它对正常人来说是可读的;i、 它在正则表达式中没有表示
  • 如何查看作为长字符串记录到pandas dataframe列中的整个LOB
  • 我的代码

    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