Создание таблицы AWS Athena из файла Parquet с массивом структур в виде столбца - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать таблицу AWS Athena из файла Parquet, хранящегося в S3, используя следующее объявление, например:

create table "db"."fufu" (
  foo array<
    struct<
      bar: int, 
      bam: int
    >
  >
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
WITH SERDEPROPERTIES ('serialization.format' = '1') 
LOCATION 's3://yada/yada/'
TBLPROPERTIES ('has_encrypted_data'='false');

Я последовательно получаю следующую ошибку:

line 3:11: mismatched input '<' expecting {'(', 'array', '>'} (service: amazonathena; status code: 400; error code: invalidrequestexception; request id: ...)

Синтаксис кажется корректным, и файл прекрасно загружается с использованием библиотеки parquet spark с полем struct типа array типа struct.

Есть идеи, что может вызвать эту ошибку?

1 Ответ

0 голосов
/ 03 июля 2018

Вам необходимо удалить двойные кавычки из имени базы данных и из имени таблицы.Вам также нужно добавить external перед table.

create external table db.fufu (
  foo array<
    struct<
      bar: int, 
      bam: int
    >
  >
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
WITH SERDEPROPERTIES ('serialization.format' = '1') 
LOCATION 's3://eth-test-ds/test/'
TBLPROPERTIES ('has_encrypted_data'='false');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...