我正在尝试使用现有的Hbase表创建和集成Hive表。它创建了一个蜂巢表。但是当我尝试hive视图时,它会抛出以下异常,尤其是当列数超过数量时。
我检查了hbase和hive中的#列相同。没有得到适当的解决方案来调试它
columns has 234 elements while hbase.columns.mapping has 92 elements (counting the key if implicit))
根本原因:
对于4000个字符,hive Metastore中SERDE_PARAMS表中PARAM_VALUE字段的字符限制是此问题的根本原因。此限制可防止Hive创建具有高列数的表,最终导致desc或select * from失败并出现上述错误。
解决方法:通过在hive Metastore中执行以下操作可以解决此问题
在mysql中执行
alter table SERDE_PARAMS MODIFY PARAM_VALUE VARCHAR(400000000);
删除hive表:drop table ***_external_all
重新再建一次hive与hbase整合的hive外部表语句
再次执行sql:
CREATE VIEW x_view AS select
substring(xx, 1, 10) xx
substring(xxx, 1, 10) as xx,
xxxx,
xxxxx,
xxxx
from
x
执行结果