Могу ли я переместить данные из одного раздела улья в другой раздел той же таблицы

Мой раздел основан на году / месяце / дате. Использование SimpleDateFormat для недели года создало неправильный раздел. Данные для даты 2017-31-12 были перенесены на 2018-31-12 с использованием YYYY в формате даты.

   SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");

Итак, я хочу переместить свои данные из раздела 2018/12/31 в 2017/12/31 той же таблицы. Я не нашел соответствующей документации, чтобы сделать то же самое.


person Aditya Goel    schedule 24.01.2018    source источник


Ответы (2)


Насколько я понял, вы хотели бы переместить данные из раздела 2018-12-31 в 2017/12/31. Ниже я объясню, как вы можете это сделать.

#From Hive/Beeline
ALTER TABLE TableName PARTITION (PartitionCol=2018-12-31) RENAME TO PARTITION (PartitionCol=2017-12-31);

FromSparkCode, вам в основном нужно инициировать hiveContext и запускать из него тот же HQL. Вы можете сослаться на мой ответ здесь на как запустить улей Context.

#If you want to do on HDFS level, below is one of the approaches
#FromHive/beeline run the below HQL
ALTER TABLE TableName ADD IF NOT EXISTS PARTITION (PartitionCol=2017-12-31);

#Now from HDFS Just move the data in 2018 to 2017 partition
hdfs dfs -mv /your/table_hdfs/path/schema.db/tableName/PartitionCol=2018-12-31/* /your/table_hdfs/path/schema.db/tableName/PartitionCol=2017-12-31/

#removing the 2018 partition if you require
hdfs dfs -rm -r /your/table_hdfs/path/schema.db/tableName/PartitionCol=2018-12-31

#You can also drop from beeline/hive
alter table tableName drop if exists partition (PartitionCol=2018-12-31);

#At the end repair the table
msck repair table tableName

Почему мне нужно ремонтировать стол ??

person roh    schedule 24.01.2018
comment
Спасибо, Роб. Я использовал метод улья, и он сработал. :) - person Aditya Goel; 25.01.2018

Существует JIRA, связанная с этим https://issues.apache.org/jira/browse/SPARK-19187. Обновите свою версию Spark до 2.0.1, чтобы решить проблему.

person hlagos    schedule 24.01.2018