Affects Version/s: 2.1.1
Fix Version/s: None
Component/s: HBase Handler
In HBase it's possible to have table names such as:
cf:one, cf:two , cf:three#i
when creating an Hive table from HBase, such as:
CREATE TABLE MyTable (key int, one string, two int, three int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
"hbase.columns.mapping" = ":key,cf:one#s,cf:two,cf:three#i",
"hbase.table.default.storage.type" = "binary"
it fails, because '#s' and '#b' are reserved keywords to specify storage type in Hive, and in this case '#i' confuses the DDL.
Anyway the '#' it's an allowed column name in HBase, and it would be possible to escape it without confusing the Hive DDL.