Объединить 3 текстовые переменные из одной строки - PullRequest
0 голосов
/ 22 января 2020

У меня есть 3 переменные, которые они текстовые. Это может быть предложение, а не просто слово.

Пример:

Переменная1: Эй, как дела ?. Переменная1: Я в порядке. Переменная1: Вы хороши

Я запускаю это:

LOWER(CONCAT(COALESCE(title," "), COALESCE(hotel_positive," "), COALESCE(hotel_negative,""))) 

Вывод:


Hey, how are you?.I am fine.You are nice

Это неправильно, как будто я считаю слова (конечная цель) здесь), «Вы? .I» или «Fine.you» придет как 1 слово.

Есть идеи, как улучшить это?

1 Ответ

0 голосов
/ 22 января 2020
with your_data as(
select 'Hey, how are you?' Variable1, 'I am fine.' Variable2, 'You are nice' Variable3
)

select w.word, count(*) cnt
from
(
select sentences(lower(concat_ws(' ', Variable1,Variable2,Variable3))) 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
am      1
are     2
fine    1
hey     1
how     1
i       1
nice    1
you     2

См. Также этот ответ: { ссылка }

Всего действительно 10:

with your_data as(
select 'Hey, how are you?' Variable1, 'I am fine.' Variable2, 'You are nice' Variable3
)

select  count(*) cnt
from
(
select sentences(lower(concat_ws(' ', Variable1,Variable2,Variable3))) sentences from your_data
)d lateral view explode(sentences) s as sentence
   lateral view explode(s.sentence) w as word
;

Результат:

10
...