Как разделить на преобразованный столбец в Hive? - PullRequest
0 голосов
/ 28 сентября 2019

Я хочу использовать год-месяц в качестве раздела в моей таблице, но такого столбца в таблице нет.

Можно ли разделить пользовательское поле?Например, я попытался, как показано ниже:

INSERT OVERWRITE table zhihu_answer partition (ym) 
SELECT 
answer_id,
answer_updated,
author_headline,
author_id,
author_name,
question_created,
question_id,
question_title,
question_type,
voteup_count,
date_format(insert_time,'yyyyMM') as ym
FROM zhihu_answer;

Но это не удалось с:

Error while compiling statement: FAILED: ValidationFailureSemanticException table is not partitioned but partition spec exists: {ym=null}

DDL:

CREATE TABLE `zhihu_answer`(
      `answer_id` string, 
      `answer_updated` string, 
      `author_headline` string, 
      `author_id` string, 
      `author_name` string, 
      `insert_time` string, 
      `question_created` string, 
      `question_id` string, 
      `question_title` string, 
      `question_type` string, 
      `voteup_count` int)
    ROW FORMAT SERDE 
      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    STORED AS INPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
    OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
    LOCATION
      'hdfs://device1:8020/user/hive/warehouse/zhihu.db/zhihu_answer'
    TBLPROPERTIES (
      'transient_lastDdlTime'='1569629962')

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...