【问题标题】:Load Teradata table from excel using tpt loader使用 tpt 加载器从 excel 加载 Teradata 表
【发布时间】:2019-10-19 21:57:34
【问题描述】:

我开发了python,用pandas moduleexcel。 在执行命令 print(df1.columns) 时,我将 dtype 设为 'Object'。

并使用相同的excel 使用TPT script 加载Teradata 表并低于错误

FILE_READER[1]:TPT19108 数据格式“DELIMITED”需要所有“VARCHAR/JSON/JSON BY NAME/CLOB BY NAME/BLOB BY NAME/XML BY NAME/XML/CLOB”架构。

在 TPT 中使用描述:-

 DEFINE SCHEMA Teradata__DATA
 DESCRIPTION 'SCHEMA OF Teradata data'
 (
 Issue_Key VARCHAR(255),
 Log_Date VARDATE(10) FORMATIN ('YYYY-MM-DD') FORMATOUT ('YYYY-MM-DD'),
 User_Name VARCHAR(255),
 Time_Spent NUMBER(10,2)

请帮助解决失败消息。错误可能是由于不同的数据类型或由于将分隔符定义为“TAB”。请建议是否有任何其他原因导致此失败。

代码

df = pd.read_excel('Time_Log_Source_2019-05-30.xlsx', sheet_name='Sheet1', dtype=str)
print("Column headings:")
print(df.columns)
df = pd.DataFrame(df,columns=['Issue Key', 'Log Date', 'User', 'Time Spent(Sec)'])
df['Log Date'] = df['Log Date'].str[:10]
df['Time Spent(Sec)'] = df['Time Spent(Sec)'].astype(int)/3600
print(df)
df.to_excel("Time_Log_Source_2019-05-30_output.xlsx")
df1 = pd.read_excel('Time_Log_Source_2019-05-30_output.xlsx', sheet_name='Sheet1',dtype=str)
df1['Issue Key'] = df1['Issue Key'].astype('str')
df1['Log Date'] = df1['Log Date'].astype('str')
df1['User'] = df1['User'].astype('str')
df1['Time Spent(Sec)'] = df1['Time Spent(Sec)'].astype('str')
df1.to_excel("Time_Log_Source_2019-05-30_output.xlsx",startrow=0, startcol=0, index=False)
print(type(df1['Time Spent(Sec)']))
print(df.columns)
print(df1.columns)

结果

Index([u'Issue Key', u'Log Date', u'User', u'Time Spent(Sec)'], dtype='object')
Index([u'Issue Key', u'Log Date', u'User', u'Time Spent(Sec)'], dtype='object')

【问题讨论】:

  • 错误清楚地说明了问题。 TPT 想要所有字符类型的列,你有一个定义为number
  • 我的TD表是Time_Spent NUMBER(10,2),我可以用varchar更改描述吗?请建议

标签: pandas python-2.7 teradata teradata-sql-assistant


【解决方案1】:

TPT 架构描述客户端记录中的字段,而不是数据库表中的列。您需要更改架构以说(输入)Time_Spent 是 VARCHAR。

但 TPT 本身并不读取 .xlsx 文件。考虑使用to_csv 而不是to_excel

【讨论】:

  • 更改为 varchar 后,出现以下错误:FILE_READER[1]: TPT19134 !ERROR!致命数据错误处理文件'/home/user/Time_Log_Source_2019-05-30_output.xlsx'。分隔数据解析错误:第 1 行中的列长度溢出。
  • 请推荐 Fred 或其他人
  • @HimanshuPant 我忽略了明显的更大问题。更正了我的回复。
  • 感谢您的帮助
猜你喜欢
  • 2015-08-02
  • 2020-03-11
  • 2014-12-24
  • 1970-01-01
  • 2014-03-30
  • 2018-06-21
  • 1970-01-01
  • 2017-07-03
  • 2015-03-20
相关资源
最近更新 更多