Предположим, у меня есть текстовый файл с именем count.txt, который содержит указанный ниже абзац.
I am working in hadoop along with various courses like Hadoop, Hana, Java etc
I love working with hadoop
This is hadoop project
Теперь мне нужно узнать, сколько раз слово hadoop встречалось в указанном выше файле.
Следующий код - это то, что я пробовал
c1= load '/...../count.txt' using PigStorage(',') as (Name:chararray);
c2 = foreach c1 generate FLATTEN(TOKENIZE(LOWER(Name)))as (Name1:chararray);
dump c2;
c3 = filter c2 by Name1=='hadoop';
dump c3;
здесь вывод я получаю как
(hadoop)
(hadoop)
(hadoop)
(hadoop)
Мне нужна цифра 4, а не слово hadoop, повторяющееся 4 раза. поэтому я попытался выполнить
`c4 = foreach c3 generate COUNT($0);`
и получаю ошибку .. Пожалуйста, помогите мне, может быть, это простая вещь, которую я не могу найти. Заранее спасибо.
Попробуй это:
Просто сделайте группу c2:
c3 = filter c2 by Name1=='hadoop'
grouped = GROUP c3 BY Name1;
wordcount = FOREACH grouped GENERATE $0, COUNT($1);
DUMP wordcount
Сообщите мне, если это поможет.
@sudarshan Поскольку ответ помог, пожалуйста, проголосуйте и за него. Спасибо.