【发布时间】:2019-10-19 21:57:34
【问题描述】:
我开发了python,用pandas module写excel。
在执行命令 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