Я хочу запросить s3 csv файлы в Афину.
Исходный csv-файл desc: (разделитель '|')
system information
val1|val2|val3|val4|val5|
Основываясь на том, что я создаю таблицу в Афинах:
Create external table dbname.fromcsv
(
col1 string,
col2 string,
col3 string,
col4 string,
col5 string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = '|')
LOCATION
's3://mybucketloc/folder/'
TBLPROPERTIES ("skip.header.line.count"='1');
После создания таблицы и запросов к Athena все выглядит хорошо, данные хорошо разделены и т. Д.
Результат первого запроса:
col1 col2 col3 col4 col5
val1 val2 val3 val4 val5
Следующий запрос к той же таблице возвращает значения с разделителем ',', хранящимся в одном столбце ...
col1 col2 col3 col4 col5
val1,val1,val,val4,val5
А потом в моем s3 ведре добавляются дополнительные файлы .csv.metadata
Как обращаться с таким делом? Я не хочу каждый раз удалять файл .csv.metadata? Есть ли способ сохранить исходное определение создания таблицы?
Я пытался изменить таблицу создания на ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
и многие другие ...