У меня есть файл паркета в S3, над которым я хотел бы создать таблицу склеивания. Я использую API boto3 python для этого. Вот код:
import boto3
c = boto3.client('glue')
c.create_table(DatabaseName='staging',
TableInput={
'Name': 'test_table',
'StorageDescriptor': {
'Location': 's3://staging/tables/test_table/version=2020-03-26',
'OutputFormat':'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat',
'InputFormat': 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'},
'PartitionKeys': [{'Name': 'country'}, {'Name': 'city'}],
'TableType': 'EXTERNAL_TABLE'})
Если мы посмотрим на поле «Местоположение», то увидим URL-адрес данных. В версии папки = 2020-03-26 у нас есть папка, например, «страна = название страны», а внутри каждой из этих папок есть другие папки, такие как «город = название города», в которых находятся файлы паркета.
Исключение из этого кода возвращает:
{'ResponseMetadata': {'HTTPHeaders': {'connection': 'keep-alive',
'content-length': '2',
'content-type': 'application/x-amz-json-1.1',
'date': 'Mon, 06 Apr 2020 08:46:58 GMT',
'x-amzn-requestid': 'ca5e4af0-a2ec-4af0-a2ec-18c308132e21'},
'HTTPStatusCode': 200,
'RequestId': 'ca5e4af0-a10d-a2ec-a13d-453dfsdfsds',
'RetryAttempts': 0}}
И я вижу таблицу на клей, но когда я пытаюсь запросить таблицу на Афина, у меня появляется ошибка:
описать отформатированный test_table
Your query has the following error(s):
FAILED: SemanticException Unable to fetch table test_table. Unable to get table: java.lang.NullPointerException
Что я делаю не так? Также я только что проверил клей, хотя запись в таблице создана, у меня нет информации, возвращаемой из интерфейса.