HIVE_CURSOR_ERROR:无法读取文件s3://xx/xxxx/part-xxxxxxxxxx.parquet中第0块的0值。
当我尝试从胶水目录表中读取AWS athena时,我已经使用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')
答案 0 :(得分:0)
在雅典娜的情况下,smallint存在问题,它没有空值
它不能与smallint和任何其他数据类型一起使用,因此我们会遇到上述错误。
一种解决方案是在镶木地板中将smallint转换为字符串,然后转换为s3