В impala / hive, как я могу извлечь слово до и после определенного ключевого слова в строке? - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть строковый столбец в импале под названием text, который содержит описания. Я хотел бы получить слова до и после определенного ключевого слова.

Пример:

  • text = Это отличный отель прямо напротив пляжа. Квартира 50 м2 разделена на спальню ....

  • keyword = м2

желаемый результат: две колонки, word before = 50 и word after = квартира

Есть идеи?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы можете использовать regexp_extract, чтобы сопоставлять слова до и после m2 и извлекать их отдельно.

with t as ( select "This is a great property right in front of the beach. The 50 m2 apartment is divided into a bedroom" as text)
select 
    regexp_extract(t.text , "(\\w+)\\s+m2", 1) as word_before,
    regexp_extract(t.text , "m2\\s+(\\w+)", 1) as word_after
from t ;

+--------------+-------------+--+
| word_before  | word_after  |
+--------------+-------------+--+
| 50           | apartment   |
+--------------+-------------+--+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...