Hive - 将数据插入分区表:找不到分区

时间:2016-10-26 12:47:32

标签: hadoop insert hive

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

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

 function mxdiflg(){

  var a1 =['asd','asdasd','asddfgsd'];
  var a2 = ['werw','werrewerewr','werwreewrererwer'];


 if ((typeof a1[0] !== 'undefined')&& (typeof a2[0] !== 'undefined')){

    var result = 0;
     for (var i=0;i<a1.length;i++) {
       for (var j=0;j<a2.length;j++) {
          var diff = Math.abs(a1[i].length - a2[j].length);

          if (diff > result)
               result = diff;
            }
          }
        }
      return result;

   }

我的查询如下:

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

my_dest_table 已创建为:

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'

对我做错了什么的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

我相信你应ALTER TABLE my_source_table RECOVER PARTITIONS;为你的目的地表做这件事。

ALTER TABLE my_dest_table RECOVER PARTITIONS;

试试这个。

注意:当然你应该删除Alex L提到的额外逗号。这将给出其他解析错误。