使用 tpt 加载程序从 excel 加载 Teradata table
Load Teradata table from excel using tpt loader
我开发了python
,用pandas module
写了excel
。
在执行命令 print(df1.columns) 时,我得到的 dtype 为 'Object'.
并使用相同的 excel
加载 Teradata
table 使用 TPT script
并低于错误
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 模式描述 client-side 记录中的字段,而不是数据库 table 中的列。您需要更改架构以说明(输入)Time_Spent 是 VARCHAR。
但 TPT 本身并不读取 .xlsx 文件。考虑使用 to_csv
而不是 to_excel
.
我开发了python
,用pandas module
写了excel
。
在执行命令 print(df1.columns) 时,我得到的 dtype 为 'Object'.
并使用相同的 excel
加载 Teradata
table 使用 TPT script
并低于错误
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 模式描述 client-side 记录中的字段,而不是数据库 table 中的列。您需要更改架构以说明(输入)Time_Spent 是 VARCHAR。
但 TPT 本身并不读取 .xlsx 文件。考虑使用 to_csv
而不是 to_excel
.