Я пытаюсь использовать Athena для запроса некоторых файлов в ионном формате создается недавно добавленной функцией «Экспорт в S3» резервных копий DynamoDB.
Это явно глупый формат, который в основном представляет собой строку $ion_1_0
, за которой следует json. Строка $ion_1_0
без кавычек спереди делает данные недопустимым json.
Я пробовал использовать Ion Serde из здесь:
CREATE EXTERNAL TABLE mydb.mytable (
`myfields` string,
...
)
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
LOCATION 's3:/.../dynamodb-export/AWSDynamoDB/01608775578817-a6944d97/data/'
TBLPROPERTIES ('has_encrypted_data'='true');
Но получил вот это:
СБОЙ: ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. Невозможно проверить serde: com.amazon.ionhiveserde.IonHiveSerDe
ОБНОВЛЕНИЕ
На самом деле формат даже немного хуже, чем я думал. Имена полей не цитируются. Так что это не совсем корректный json даже после удаления префикса $ ion.