温馨提示:本文翻译自stackoverflow.com,查看原文请点击:amazon web services - Not able read part files from parquet
amazon-athena amazon-web-services aws-glue

amazon web services - 无法从实木复合地板读取零件文件

发布于 2020-04-25 16:51:46

HIVE_CURSOR_ERROR:无法读取文件s3://xx/xxxx/part-xxxxxxxxxx.parquet中块0中0处的值。

当我尝试从胶水目录表中读取AWS雅典娜时,我使用AWS胶水动态框架写入api创建了实木复合地板文件,并收到此错误。

当我尝试通过动态框架通过粘胶目录读取此文件时,这似乎很好,但是Athena给出了上述错误。

使用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') 

查看更多

提问者
Rahul Berry
被浏览
28
Rahul Berry 2020-02-08 15:39

在雅典娜的情况下smallint存在问题,它没有空值

它不能与smallint和任何其他数据类型一起使用,因此我们遇到了上述错误。

一种解决方案是在镶木地板中将smallint转换为字符串,然后转换为s3