Допустим, у меня есть два локальных файла 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, но моя таблица уже все в нижнем регистре, поэтому я не уверен, что случилось.
Я долго смотрел на него. Посмотрел на улей Джиру и руководство по языку и не смог найти с ним ничего плохого. Удачи. – invoketheshell