создавать таблицы из файла S3 bucket - PullRequest
0 голосов
/ 13 марта 2019

В моей корзине S3 у меня есть несколько файлов с разными схемами.

s3://folder/file1.csv
s3://folder/file2.csv
s3://folder/file3.csv
s3://folder/file4.csv

Все файлы содержат поля, которые мне нужны, но количество столбцов отличается.

Я пытаюсь сделать это для одногофайла, но созданная таблица остается пустой

CREATE  EXTERNAL TABLE test1 (
app_id string,
app_version string
)
row format delimited fields terminated by  ','
 LOCATION 's3://folder/file4.csv';


MSCK REPAIR TABLE test1;

Можно ли создать 3 таблицы из этих файлов?Или я могу поместить нужные мне поля из всех файлов в одну таблицу?

1 Ответ

1 голос
/ 13 марта 2019

Вы не можете определить файл как LOCATION для Amazon Athena.Это приведет к этому сообщению об ошибке:

Невозможно создать каталог для пути 's3: //my-bucket/foo.csv', так как это файл

Вы должны поместить каждый файл в отдельную папку, а затем установить LOCATION в папку.Все файлы в этой папке (даже если это всего один файл) будут сканироваться для каждого запроса.

Кроме того, нет необходимости вызывать MSCK REPAIR TABLE, если он не содержит разделов.

ByКстати, эта строка:

LOCATION 's3://folder/file4.csv'

также должна указывать имя корзины:

LOCATION 's3://my-bucket/folder/file4.csv'
...