【发布时间】:2014-10-11 08:48:21
【问题描述】:
我无法使用以下脚本在配置单元中创建带有分区列的外部表
CREATE EXTERNAL TABLE Opportunity_par(key string,Opportunity__Id string,Campaign__Name string)
> PARTITIONED BY (eventDate timestamp)
> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf2:Opportunity__Id,cf3:Campaign__Name,cf1:eventDate")
> TBLPROPERTIES("hbase.table.name" = "test_table");
它显示以下错误,
FAILED: Error in metadata: 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 4 elements (counting the key if implicit))
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
请给出在hive中创建带有分区列的外部表的解决方案或建议
谢谢大家...
【问题讨论】:
-
首先对由 HBase 支持的表进行分区并没有什么意义。你期待发生什么? Hive 中的分区实际上只是 HDFS 目录,但您没有使用 HDFS。
-
我想为我的 hbase (test_table) 表创建一个用于查询分区列的配置单元表,如果我尝试这样做,我会以上述错误结束......应该怎么办@JoeK