Я хочу использовать год-месяц в качестве раздела в моей таблице, но такого столбца в таблице нет.
Можно ли разделить пользовательское поле?Например, я попытался, как показано ниже:
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')
Спасибо за вашу помощь.