【问题标题】:Hive - Insert data into partitioned table: partition not foundHive - 将数据插入分区表:未找到分区
【发布时间】:2016-10-26 12:47:31
【问题描述】:

我在尝试在 Hive 外部分区表中插入新数据时遇到问题。

表是按天分区的,我得到的错误是:

FAILED: SemanticException [Error 10006]: Line 1:51 Partition not found ''18102016''

我的查询如下:

ALTER TABLE my_source_table RECOVER PARTITIONS;
INSERT OVERWRITE TABLE my_dest_table PARTITION (d = '18102016')
SELECT
  'III' AS primary_alias_type,
   iii_id AS primary_alias_id,
FROM
   my_source_table
WHERE 
   d = '18102016'

my_dest_table 已创建为:

CREATE EXTERNAL TABLE my_dest_table (
   primary_alias_type string,
   primary_alias_id
) PARTITIONED BY (d string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION 's3://my_bucket/my_external_tables/'

知道我做错了什么吗?谢谢!

【问题讨论】:

  • 可能不是问题,但primary_alias_id 后面多了一个逗号
  • 这个问题解决了吗?我有完全相同的问题
  • @Confused 是的,通过下面的答案。

标签: hadoop insert hive


【解决方案1】:

我认为您应该 ALTER TABLE my_source_table RECOVER PARTITIONS; 为您的目标表执行此操作。

ALTER TABLE my_dest_table RECOVER PARTITIONS;

试试这个。

注意:当然,您应该删除 Alex L 提到的多余逗号。这将给出其他解析错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 2018-01-03
    • 2018-07-11
    • 2015-09-13
    • 2023-04-02
    相关资源
    最近更新 更多