Hadoop 如何创建具有指向hbase表的复杂数据类型的外部配置单元表?
我有一个包含列族(名称、联系人)和列、名称(字符串)、年龄(字符串)、工作树集(字符串)、工作城市(字符串)、工作状态(字符串)的hbase表 我想创建一个外部配置单元表,该表指向具有以下列的hbase表。Hadoop 如何创建具有指向hbase表的复杂数据类型的外部配置单元表?,hadoop,hive,hbase,hadoop2,Hadoop,Hive,Hbase,Hadoop2,我有一个包含列族(名称、联系人)和列、名称(字符串)、年龄(字符串)、工作树集(字符串)、工作城市(字符串)、工作状态(字符串)的hbase表 我想创建一个外部配置单元表,该表指向具有以下列的hbase表。 姓名(字符串)、年龄(字符串)、地址(结构) 我试着用Map代替Struct。以下是查询: CREATE EXTERNAL TABLE hiveTable(id INT,name STRING,age STRING, address MA
姓名(字符串)、年龄(字符串)、地址(结构)
我试着用Map代替Struct。以下是查询:
CREATE EXTERNAL TABLE hiveTable(id INT,name STRING,age STRING,
address MAP<String,String>)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "Name:name,Name:,Contact:")
TBLPROPERTIES("hbase.table.name" = "hbaseTable");
CREATE EXTERNAL TABLE hiveTable(id INT、name STRING、age STRING、,
地址图)
由“org.apache.hadoop.hive.hbase.HBaseStorageHandler”存储
使用SerdeProperty(“hbase.columns.mapping”=“Name:Name,Name:,Contact:”)
TBLProperty(“hbase.table.name”=“hbaseTable”);
@RamPrasadG感谢您的帮助。我认为hbastoragehandler只支持基本类型。给定的解决方案有效吗?hbase中地址列的数据类型和格式是什么?
Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException:
MetaException(message:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.hbase.HBaseSerDe: columns has 3 elements while hbase.columns.mapping
has 5 elements (counting the key if implicit))
CREATE EXTERNAL TABLE hiveTable(id INT,name STRING,age STRING,
address MAP<String,String>)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = "Name:name,Name:,Contact:")
TBLPROPERTIES("hbase.table.name" = "hbaseTable");