2015-07-29 5 views
0

Допустим, у меня есть два локальных файла file1.txt и file2.txt.Вставьте данные в раздел Hive без перезаписи существующих данных

Содержание file1.txt:

1,a 
3,c 

Содержание file2.txt

2,b 
4,d 

Я поместил файлы на Hadoop, как этот

hadoop fs -rm -r /user/cloudera/repart2/* 
hadoop fs -mkdir -p /user/cloudera/repart2/20150401 
hadoop fs -put file1.txt /user/cloudera/repart2/20150401/ 
hadoop fs -mkdir -p /user/cloudera/repart2/20150402 
hadoop fs -put file2.txt /user/cloudera/repart2/20150402/ 

я сделал a Таблица улья

# Select a test database 
use training; 

# Create the table 
create external table repart (
col1 int, col2 string) 
PARTITIONED BY (Test int) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
STORED AS TEXTFILE 
location '/user/cloudera/repart2'; 

# Add partititons 
ALTER TABLE repart ADD PARTITION (Test='20150401') LOCATION '/user/cloudera/repart2/20150401/'; 
ALTER TABLE repart ADD PARTITION (Test='20150402') LOCATION '/user/cloudera/repart2/20150402/'; 

Когда я делаю отборное заявление

select * from repart; 

Это показывает

1 a 20150401 
3 c 20150401 
2 b 20150402 
4 d 20150402 

Я хочу, чтобы мой стол, чтобы в конечном итоге выглядеть так

1 a 20150401 
2 b 20150401 
3 c 20150401 
4 d 20150401 
2 b 20150402 
4 d 20150402 

Но когда я пытаюсь мой вставки запроса

INSERT INTO TABLE repart PARTITION (Test='20150401') select col1, col2 FROM repart where Test = 20150402; 

Запрос заставляет таблицу выглядеть так. Исходные данные в разделе 20150401 были перезаписаны.

2 b 20150401 
4 d 20150401 
2 b 20150402 
4 d 20150402 

Вернулась команда «hive -version»: 0.12.0-cdh5.0.0. Я заметил this jira, но моя таблица уже все в нижнем регистре, поэтому я не уверен, что случилось.

ответ

0

Тот же код работал без проблем, когда я использовал Hive 1.1.0-cdh5.4.0. Должно быть, что-то сломалось около 0,12. Я просто использую новую версию. Мне все равно было бы интересно, если кто-то знает, почему 0.12.0 сломался.

+0

Я долго смотрел на него. Посмотрел на улей Джиру и руководство по языку и не смог найти с ним ничего плохого. Удачи. – invoketheshell

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