gpt4 book ai didi

sql - Hive 无法在 hbase 中为外部表创建分区列

转载 作者:可可西里 更新时间:2023-11-01 16:16:27 25 4
gpt4 key购买 nike

我无法使用以下脚本在配置单元中创建带有分区列的外部表

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(或其他支持的系统)上,而不存在于本地文件系统上。

外部表上的分区很棘手,因为:外部表只是指向预先存在的位置/文件夹中的数据。如果该文件夹是预先存在的,则意味着很可能其中没有与该分区对应的子文件夹。因此,为了向外部表创建/添加分区,它要么必须有一个预先存在的分区子文件夹,要么您必须手动创建一个。

查看此内容以获取更多信息:http://blog.zhengdong.me/2012/02/22/hive-external-table-with-partitions

关于sql - Hive 无法在 hbase 中为外部表创建分区列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com