異常說明
按照官方文檔在Hive中建表關聯HBase,然後在Hue中用Impala查詢,查詢結果中字段的順序與在Hive中的建表順序不一致,Hue中使用Impala查詢出來的字段順序是按照字母排序的。
問題重現和說明
在Hive中建表關聯HBase
<code>CREATE
EXTERNAL
TABLE
`hbasestringids`
( | |`id`
string
COMMENT
'from deserializer'
, | |`bool_col`
boolean
COMMENT
'from deserializer'
, | |`tinyint_col`
tinyint
COMMENT
'from deserializer'
, | |`smallint_col`
smallint
COMMENT
'from deserializer'
, | |`int_col`
int
COMMENT
'from deserializer'
, | |`bigint_col`
bigint
COMMENT
'from deserializer'
, | |`float_col`
float
COMMENT
'from deserializer'
, | |`double_col`
double
COMMENT
'from deserializer'
, | |`date_string_col`
string
COMMENT
'from deserializer'
, | |`string_col`
string
COMMENT
'from deserializer'
, | |`timestamp_col`
timestamp
COMMENT
'from deserializer'
) | |ROW
FORMAT
SERDE | |'org.apache.hadoop.hive.hbase.HBaseSerDe'
| |STORED
BY
| |'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
| |WITH
SERDEPROPERTIES ( | |'hbase.columns.mapping'
=':key,boolsCF:bool_col,intsCF:tinyint_col,intsCF:smallint_col,intsCF:int_col,intsCF:bigint_col,floatsCF:float_col,floatsCF:double_col,stringsCF:date_string_col,stringsCF:string_col,stringsCF:timestamp_col'
, | |'serialization.format'
='1'
) | | TBLPROPERTIES ( | |'hbase.table.name'
='hbasealltypessmall'
, | |'transient_lastDdlTime'
='1585032011'
)/<code>
Hive中的建表順序如下
在Impala-shell中查詢出的表字段順序如下,與Hive建表順序不一致
在Hue中用詢出來的表字段順序如下,與在Impala-shell中的查詢結果一直,但是與Hive中的建表順序不一致。
經確認,此問題是Impala中的一個bug,目前正在修復中。目前有一個Jira在跟蹤這個問題,鏈接如下,如果要保持字段順序可以在select後按照自己想要的順序自己編寫。
https://issues.apache.org/jira/browse/IMPALA-886