2015-12-04 1 views
0

Я создал таблицу в Hive с загруженными в нее данными.Невозможно разбить таблицу на Hive-Error в метаданных

Я хочу, чтобы разбить его на колонке спецификации: DoJ где значение 2012

Я использовал:

ALTER TABLE employee 
ADD PARTITION (year='2012') 
location '/home/rvarun/2012/part2012'; 

Я получаю сообщение об ошибке:

FAILED: Error in metadata: table is not partitioned but partition spec exists: {year=2012} 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask 

Я немного новый к Улью, пожалуйста, извините меня за любую ненужность.

В таблице у меня выглядит следующим образом:

1001 Varun 100000 Security Lead 2011 
1002 Saloni 85000 Database Admin 2012 
1003 Karan 90000 Network Engineer Lead 2012 
1004 Pratik 98000 TrainEngine Driver 2012 
1005 Ashish 120000 Senior Consultant 2013 
1006 Gautam 70000 Salesforce Consultant 2013 
1007 Mohit Sacheva 20000 Peon 2014 

Может кто-нибудь сказать мне, почему это происходит? TIA

+0

Просьба предоставить сценарий создания таблицы и вывод работы ** show partitions employee ** – yoga

+0

помогло ли мое решение? – dheee

ответ

0

Ваш стол создан неправильно. Скажем, имя вашей таблицы - my_table. Вы должны включить

'PARTITIONED BY (year string)' 

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

DROP TABLE IF EXISTS my_table; 
CREATE EXTERNAL TABLE my_table 
(col1 string, 
col2 string, 
col3 string) 
PARTITIONED BY (year string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/home/rvarun/2012/part2012'; 

Если вы хотите использовать имя столбца, как Да, просто заменить год с Дой в разделено.