Загрузить таблицу Teradata из Excel с помощью загрузчика tpt - PullRequest
0 голосов
/ 04 июня 2019

Я разработал скрипт на python и использовал модуль pandas для написания файла excel.Выполняя команду print (df1.columns) , я получаю dtype как 'Object'.

и использую тот же файл Excel для загрузки в таблицу Teradata с использованием сценария TPT и получая ошибку ниже 10000 *

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')

1 Ответ

0 голосов
/ 06 июня 2019

Схема TPT описывает поля в записях на стороне клиента, а не столбцы в таблице базы данных.Вам нужно изменить схему, указав, что (входной) Time_Spent равен VARCHAR.

Но TPT не читает нативно файлы .xlsx.Попробуйте использовать to_csv вместо to_excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...