Я предлагаю делать это вручную, а не с помощью клея.Клей работает только для самых основных ситуаций, и это, к сожалению, выходит за рамки этого.
Документацию по созданию таблицы Avro можно найти здесь: https://docs.aws.amazon.com/athena/latest/ug/avro.html
Предостережение для AvroТаблицы - это то, что вам нужно указать как столбцы таблицы, так и схему Avro.Это может выглядеть странно и излишне, но так работает Афина / Престо.Ему нужна схема, чтобы знать, как интерпретировать файлы, а затем ему нужно знать, какие из свойств в файлах вы хотите представить как столбцы (и их типы, которые могут соответствовать или не соответствовать типам Avro).
CREATE EXTERNAL TABLE avro_table (
foo STRING,
bar INT
)
ROW FORMAT
SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH SERDEPROPERTIES ('avro.schema.literal' = '
{
"type": "record",
"name": "example",
"namespace": "default",
"fields": [
{
"name": "foo",
"type": ["null", "string"],
"default": null
},
{
"name": "bar",
"type": ["null", "int"],
"default": null
}
]
}
')
STORED AS AVRO
LOCATION 's3://some-bucket/data/';
Обратите внимание, как схема Avro отображается в виде документа JSON внутри значения свойства serde (одинарные кавычки) - форматирование не является обязательным, но делает этот пример легче для чтения.