Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何创建具有指向hbase表的复杂数据类型的外部配置单元表?_Hadoop_Hive_Hbase_Hadoop2 - Fatal编程技术网

Hadoop 如何创建具有指向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

我有一个包含列族(名称、联系人)和列、名称(字符串)、年龄(字符串)、工作树集(字符串)、工作城市(字符串)、工作状态(字符串)的hbase表

我想创建一个外部配置单元表,该表指向具有以下列的hbase表。
姓名(字符串)、年龄(字符串)、地址(结构)


我试着用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");