Не могу прочитать файлы деталей из паркета - PullRequest
0 голосов
/ 08 января 2020

HIVE_CURSOR_ERROR: невозможно прочитать значение в 0 в блоке 0 в файле s3: //xx/xxxx/part-xxxxxxxxxx.parquet.

Я создал файлы паркета, используя AWS glue dynamici c frame write api, когда я пытаюсь прочитать AWS athena из таблицы каталога клеев, получаю эту ошибку.

Когда я пытаюсь прочитать этот файл через каталог клеев через динамический c кадр, это вроде бы нормально, но Афина дает вышеупомянутую ошибку.

При работе с форматом avro, похоже, в этом нет никаких проблем.

CREATE EXTERNAL TABLE `table_name`(
`column_name_1` string, 
`column_name_2` 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://xxxxxxxxxxx/xxxxx/xxx/'
TBLPROPERTIES (
  'CrawlerSchemaDeserializerVersion'='1.0', 
  'CrawlerSchemaSerializerVersion'='1.0', 
  'UPDATED_BY_CRAWLER'='xxxxxxxxxx', 
  'averageRecordSize'='xxxxx', 
  'classification'='parquet', 
  'compressionType'='none', 
  'objectCount'='xxxxx', 
  'recordCount'='xxx', 
  'sizeKey'='xxxx', 
  'typeOfData'='file') 

1 Ответ

0 голосов
/ 08 февраля 2020

Существует проблема с smallint в случае athena, он имеет ненулевое значение

Он не может использоваться с smallint и любым другим типом данных, по этой причине мы получаем вышеупомянутую ошибку.

Решением будет преобразование smallint в строку перед s3 в паркете

...