Program Word Count w ulu
Próbuję nauczyć się Hive. Co zaskakujące, nie mogę znaleźć przykładu, jak napisać proste zadanie polegające na liczeniu słów. Czy poniższe informacje są prawidłowe?
Powiedzmy, że mam plik wejściowyinput.tsv
:
<code>hello, world this is an example input file </code>
Tworzę rozdzielacz w Pythonie, aby zamienić każdą linię na słowa:
<code>import sys for line in sys.stdin: for word in line.split(): print word </code>
A potem mam następujące w moim skrypcie Hive:
<code>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; </code>
Nie jestem pewien, czy czegoś brakuje lub czy naprawdę jest to tak skomplikowane. (W szczególności potrzebuję tymczasowegowords
tabeli i czy muszę napisać funkcję zewnętrznego rozdzielacza?)