Я пытаюсь узнать улей. Удивительно, но я не могу найти пример того, как писать простую задачу подсчета слов. Правильно ли следующее?Программа подсчета слов в улье
Скажем, у меня есть входной файл input.tsv
:
hello, world
this is an example input file
я создаю сплиттер в Python, чтобы превратить каждую строку в словах:
import sys
for line in sys.stdin:
for word in line.split():
print word
И тогда я следующий в моем улей сценарии :
CREATE TABLE input (line STRING);
LOAD DATA LOCAL INPATH 'input.tsv' OVERWRITE INTO TABLE input;
-- temporary table to hold words...
CREATE TABLE words (word STRING);
add file splitter.py;
INSERT OVERWRITE TABLE words
SELECT TRANSFORM(text)
USING 'python splitter.py'
AS word
FROM input;
SELECT word, count(*) AS count FROM words GROUP BY word;
Я не уверен, что мне что-то не хватает, или если это действительно так сложно. (В частности, нужна ли мне временную words
таблицы, и мне нужно, чтобы написать функцию внешнего сплиттера?)
глядя на ваш комментарий с участием взрываются и вид сбоку в HiveQL, Вы можете, пожалуйста, посмотрите в этот СЦ вопрос, я не могу найти решение для этого, [HTTP: // stackoverflow.com/questions/11373543/explode-the-array-of-struct-in-hive](http://stackoverflow.com/questions/11373543/explode-the-array-of-struct-in-hive). Извините за то, что обратились к вам так. – ferhan
@Steve - я загрузил данные в таблицу, и когда я запускаю команду, я получаю 'FAILED: ошибка в семантическом анализе: null'. Существуют ли какие-либо предпосылки для запуска команды? –