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?)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage