Я написал задание ETL для преобразования кучи файлов JSON в файлы (объекты) паркета с временным разделением, хранящиеся на S3.
Вместо того, чтобы вручную создавать таблицы в AWS Athena и использовать каталог данных Athena, я решил использовать хранилище данных AWS Glue, которое сканировало преобразованные файлы паркета и генерировало схему, которая кажется правильной. Это:
CREATE EXTERNAL TABLE `table_fd2f388f79ee6`(
`field1` string,
`field2` string,
`data` struct<attrib1:string,gpId:string,attrib2:boolean,attrib3:array<string>,attrib4:struct<f1:int,f2:int>>)
PARTITIONED BY (
`year` string,
`month` string,
`day` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
's3://path'
TBLPROPERTIES (
'CrawlerSchemaDeserializerVersion'='1.0',
'CrawlerSchemaSerializerVersion'='1.0',
'UPDATED_BY_CRAWLER'='crawlername',
'averageRecordSize'='17',
'classification'='parquet',
'compressionType'='none',
'objectCount'='2',
'recordCount'='726',
'sizeKey'='287',
'typeOfData'='file')
однако даже для простого select *
запроса я получаю сообщение об ошибке:
HIVE_CANNOT_OPEN_SPLIT: Ошибка при открытии Hive split s3: //bucket/year=2018/month=07/day=03/part-00258-e1bcec61-f24e-40a2-8fac-fdd017054c2a.c000.snappy.parquet (offset = 0, length = 5356): данные столбца. Тип атрибута LIST не поддерживается
Это ошибка, ограничение или что-то, что мне нужно исправить?