Частота подсчета слов текстовой переменной с Hive - PullRequest
1 голос
/ 22 января 2020

У меня есть переменная, каждая строка которой является предложением. Пример:

 -Row1 "Hey, how are you?
 -Rwo2 "Hey, Who is there?

Я хочу, чтобы вывод представлял собой группу счетчиков по слову.

Пример:

Hey 2
How 1
are 1
...

Я использую функцию разделения битов, но я немного застрял. Есть мысли по этому поводу?

Спасибо!

Ответы [ 2 ]

1 голос
/ 22 января 2020

Это возможно в Улей. Разбейте не-буквенные символы и используйте боковой вид + разнесение, затем подсчитайте слова:

with your_data as(
select stack(2,
'Hey, how are you?',
'Hey, Who is there?'
) as initial_string
)

select w.word, count(*) cnt
from
(
select split(lower(initial_string),'[^a-zA-Z]+') words from your_data
)s lateral view explode(words) w as word
where w.word!=''
group by w.word;

Результат:

word    cnt
are     1
hey     2
how     1
is      1
there   1
who     1
you     1

Еще один метод с использованием sentences Функция, возвращает массив токенизированных предложений (массив слов):

with your_data as(
select stack(2,
'Hey, how are you?',
'Hey, Who is there?'
) as initial_string
)

select w.word, count(*) cnt
from
(
select sentences(lower(initial_string)) sentences from your_data
)d lateral view explode(sentences) s as sentence
   lateral view explode(s.sentence) w as word
group by w.word;

Результат:

word    cnt
are     1
hey     2
how     1
is      1
there   1
who     1
you     1

предложений (строка str, строка lang, строка языка) Функция разбивает строку текста на естественном языке на слова и предложения, где каждое предложение разбивается на соответствующей границе предложения и возвращается в виде массива слов. 'Lang' и 'locale' являются необязательными аргументами. Например, предложения («Привет! Как дела?») Возвращает ((«Привет», «Есть»), («Как», «Есть», «Вы»))

0 голосов
/ 22 января 2020

Улей не сможет этого сделать один. Вы можете прочитать данные из Hive в Pandas DataFrame и выполнить обработку там с помощью Python. Тогда ваш вопрос заключается в том, как рассчитать частоту слов в столбце DataFrame.

Подсчет частоты слов в pandas фрейме данных

...