我sqooped mysql
表到hbase
并尝试在Hive中创建一个外部表。当从HIVE查询时,外部表返回NULL为十进制数据类型
我在mysql
有一列十进制(38,1),它被移动到hbase
。
现在,当使用Hive
创建外部表时,在获取记录时我得到空值。剩余所有值arr字符串数据类型,因此hive外部表保存值。
在hive
中创建外部表时,我使用的数据类型是decimal(38,1)
。
任何其他解决方案获取Hive外部表中的实际值?
创建表:
create external table namespace.tablename(c1 string,c2_col string,c3_col decimal(38,1),c4_col string)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,cf1:a,cf1:b,cf1:c")TBLPROPERTIES("hbase.table.name" = "namespace.hbasetablename");
剩余价值被取出,但与decimal (38,1)
只有一列从mysql
搬到hbase
。但是从hbase
到hive
没有为列不匹配
您可以发布create table语句? –
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'WITH SERDEPROPERTIES(“hbase.columns.mapping”)存储的外部表namespace.tablename(c1 string,c2_col string,c3_col decimal(38,1),c4_col string) =“:key,cf1:a,cf1:b,cf1:c”)TBLPROPERTIES(“hbase.table.name”=“namespace.hbasetablename”); –
取回剩余值但是只有一列有十进制(38,1),它从mysql移动到hbase。但从hbase到配置单元的列不匹配 –