我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到配置單元的列不匹配 –