2013-12-10 2 views
0

Я занимаюсь сортировкой по году в улье. Я создал скрипт: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. 

ответ

2

При вставке вставки:

SELECT title, full_name, ep_name, type, ep_num, suspended 

Добавить год в том, что ... В настоящее время ваше year поле в movies_byYear является null ...

Когда вы указываете раздел на year в своем заявлении о создании таблицы в улье, year будет столбцом в таблице !!!

UPDATE

Заменить этот

INSERT OVERWRITE TABLE movies_byYear PARTITION (year='2013') SELECT title, full_name, ep_name, type, ep_num, suspended FROM movies WHERE year='2013';

с этим:

INSERT OVERWRITE TABLE movies_byYear PARTITION (year=2013) SELECT title, full_name, ep_name, type, ep_num, suspended FROM movies WHERE year='2013';

А именно, удалить одиночные кавычки вокруг значения года в раздел ...

+0

Thx для вашего ответа! Однако он не работает ... Пожалуйста, смотрите мое обновление! Кстати, можно ли просто позволить улью выбрать разбиение? – mrquad

+0

Вы указываете год как INT, а затем используете Year = '2013' (STRING) ... Попробуйте изменить: PARTITION (year = '2013') на PARTITION (год = 2013) – rkh

+0

Thx для вашего ответа! Однако я этого не понимаю. В моем обновлении я не использовал '' ... '' – mrquad

Смежные вопросы