2012-01-31 3 views
4

У меня есть данные в hadoop и создана внешняя таблица с использованием разделов (дата и час). Создание таблицы отлично, но когда я пытаюсь запросить данные, я не получаю никаких результатов.Создать внешний с разделом

Hadoop путь к файлу ->/test/dt=2012-01-30/hr=17/testdata*

Создать заявление ->

CREATE EXTERNAL TABLE test(adate STRING, 
remoteIp STRING, 
url STRING, 
type STRING, 
ip STRING, 
useragent STRING) 
COMMENT 'This is the Test view table' 
PARTITIONED BY(dt STRING, hr STRING) 
ROW FORMAT SERDE 'com.test.serde.ValidRawDataSerDe' 
STORED AS SEQUENCEFILE 
LOCATION '/test'; 

сообщение Создание Таблица ->

OK 
Time taken: 0.078 seconds 

Когда я использую выберите IM запрос не получает результаты ->

hive> select * from test; 
OK 
Time taken: 0.052 seconds 
hive> select * from test where dt='2008-08-09' and hr='17'; 
OK 

Я ничего не вижу здесь. Пожалуйста помоги.

ответ

5

Да. Вам нужно сообщить Hive о новом разделе. Используемая команда ALTER TABLE ... ADD PARTITION.

+0

Спасибо Olaf. Можете ли вы привести мне пример для вышеупомянутого утверждения, как это сделать. – Balaji

+0

У меня вопрос Олаф. Есть ли способ преодолеть «ALTER TABLE ADD PARTITION». Потому что мне нужно суммировать почасовые и 4-часовые данные. Я не хочу менять таблицу с добавлением раздела все время :-( – Balaji

+0

@Balaji: Я упоминал, что это может/должно быть сделано программно, например, через Hive JDBC? – Olaf

1

Внешнее создание таблицы через HIVE JDBC не отражается в хранилище данных.

После создания таблицы с помощью улья JDBC, stmt.executeQuery("create external table trial5 (TOPIC STRING) row format delimited fields terminated by '' STORED as TEXTFILE LOCATION '/user/ranjitha/trial5'");,

и я стараюсь извлечением из этого файла, не возвращается ничего ...

Вот в этой ссылке: https://groups.google.com/a/cloudera.org/forum/?fromgroups#!topic/cdh-user/YTekdFtbelE, он говорит внешнее создание таблиц не представляется возможным используя Hive JDBC ..

было бы очень полезно, если кто-то может направить меня на выше ..

Спасибо!

+0

Можете ли вы попробуйте выполнить две операции с помощью JDBC - 1) Создать простую таблицу (NO External) 2) Загружать данные из локального пути. https://cwiki.apache.org/Hive/languagemanual-dml.html#LanguageManualDML-Loadingfilesintotables – Balaji