Word Count-Programm in Hive
Ich versuche Hive zu lernen. Überraschenderweise kann ich kein Beispiel für das Schreiben eines einfachen Wortzähljobs finden. Ist das Folgende richtig?
Angenommen, ich habe eine Eingabedateiinput.tsv
:
<code>hello, world this is an example input file </code>
In Python erstelle ich einen Splitter, um jede Zeile in Wörter umzuwandeln:
<code>import sys for line in sys.stdin: for word in line.split(): print word </code>
Und dann habe ich Folgendes in meinem Hive-Skript:
<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>
Ich bin mir nicht sicher, ob mir etwas fehlt oder ob es wirklich so kompliziert ist. (Insbesondere brauche ich die vorübergehendewords
Tabelle, und muss ich die externe Splitter-Funktion schreiben?)