Извлечение узорного текста из строки с помощью Hive - PullRequest
1 голос
/ 14 января 2020

У меня есть данные в столбце, который выглядит следующим образом:

  • Countryside_Video _-_ A18-49_Pub _- Q3 -_ Flight_7_18_49_BOTH

  • Видео в сельской местности - M18-25 подтверждено -Q4 - Рейс 1

  • PremiumBrand_2019_Upfront_Video _-_ W18-49_Validated _-_ Q4_Flight_1_18_49_FEMALE

  • Travel Вокруг света - W25-54 Утверждено - Q3 25-54_FEMALE

Мне нужно извлечь значение возраста и пола из каждой строки:

  • A18-49
  • M18-25
  • W18-49
  • W25-54

Это сложно, потому что есть может быть любое количество комбинаций между буквами A, M, F и диапазоном чисел. Буквы обозначают возраст, мужской или женский. Диапазон чисел - это возрастной диапазон.

Из некоторого поиска в Google, похоже, я мог бы использовать функцию regexp_extract, но я новичок в Hive. Любая помощь по этому вопросу будет принята с благодарностью!

1 Ответ

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

У меня нет Hive под рукой для тестирования, но это может сработать:

select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)
...