Я занимаюсь сортировкой по году в улье. Я создал скрипт:Hive - раздел по году
DROP TABLE movies_byYear;
CREATE TABLE movies_byYear (title STRING, full_name STRING, ep_name STRING, type STRING, ep_num STRING, suspended BOOLEAN) PARTITIONED BY (year INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE;
INSERT OVERWRITE TABLE movies_byYear PARTITION (year='2013') SELECT title, full_name, ep_name, type, ep_num, suspended FROM movies WHERE year='2013';
Однако при использовании: SELECT COUNT(*) FROM movies WHERE year='2013';
Я не получить все фильмы от 2013 года назад, а я все фильмы обратно.
Можно ли также разрешить улей решить, где разделить?
Я действительно ценю ваш ответ !!!
UPDATE
При добавлении year
я получаю:
INSERT OVERWRITE TABLE movies_byYear PARTITION (year=2013) SELECT title, full_name, ep_name, type, ep_num, suspended, year FROM movies WHERE year=2013;
FAILED: SemanticException [Error 10044]: Line 1:23 Cannot insert into target table because column number/types are different '2013': Table insclause-0 has 6 columns, but query has 7 columns.
Thx для вашего ответа! Однако он не работает ... Пожалуйста, смотрите мое обновление! Кстати, можно ли просто позволить улью выбрать разбиение? – mrquad
Вы указываете год как INT, а затем используете Year = '2013' (STRING) ... Попробуйте изменить: PARTITION (year = '2013') на PARTITION (год = 2013) – rkh
Thx для вашего ответа! Однако я этого не понимаю. В моем обновлении я не использовал '' ... '' – mrquad