我创建了一个包含三列id、name和position的表,然后使用spark将数据存储到s3中,使用orc格式。当我询问 select * from person 它回报一切。但是当我从presto查询时,我得到了一个错误:
select * from person
Query 20180919_151814_00019_33f5d failed: com.facebook.presto.spi.type.VarcharType
igetnqfo1#
我已经找到了问题的答案,当我将数据存储在s3中时,文件中的数据还有一列没有在配置单元表metastore中定义。所以当presto试图查询数据时,它发现有varchar而不是integer。如果一个记录的类型与元存储中定义的类型不同,也可能发生这种情况。我不得不删除我的数据,并再次导入它没有额外的不必要的列
1条答案
按热度按时间igetnqfo1#
我已经找到了问题的答案,当我将数据存储在s3中时,文件中的数据还有一列没有在配置单元表metastore中定义。
所以当presto试图查询数据时,它发现有varchar而不是integer。
如果一个记录的类型与元存储中定义的类型不同,也可能发生这种情况。
我不得不删除我的数据,并再次导入它没有额外的不必要的列