Próbuję uczyć się Hive. Co zaskakujące, nie mogę znaleźć przykładu, jak napisać proste zadanie liczenia słów. Czy poniższe wskazówki są prawidłowe?Program liczenia słów w Ulu
Powiedzmy mam pliku wejściowego input.tsv
:
hello, world
this is an example input file
tworzę splitter w Pythonie, aby włączyć każdy wiersz słowami:
import sys
for line in sys.stdin:
for word in line.split():
print word
a następnie Mam następujących w moim Hive skryptu :
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;
Nie jestem pewien, czy czegoś brakuje, czy tak naprawdę jest s skomplikowane. (W szczególności, muszę tymczasowy words
tabelę, a muszę napisać funkcję rozgałęźnika zewnętrznego?)
patrząc na swoim komentarzu udziałem eksplodować i widok boczny w HiveQL, można proszę spojrzeć na ten SO pytanie, nie jestem w stanie znaleźć rozwiązania, które [http: // stackoverflow.com/questions/11373543/explode-the-array-of-struct-in-hive](http://stackoverflow.com/questions/11373543/explode-tray-array-of-struct-in-hive). Przepraszamy za skontaktowanie się z Tobą w ten sposób. – ferhan
@Steve - Załadowałem dane do tabeli i po uruchomieniu polecenia otrzymuję komunikat "FAILED: Błąd w analizie semantycznej: null". Czy są jakieś warunki wstępne do uruchomienia polecenia? –