hive - Regex в функции Split не дает выходных данных.Пусто - PullRequest
0 голосов
/ 03 октября 2018

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

Ввод: abcdefghijkl

select split("abcdefghijkl", '([a-zA-Z0-9]{4})') from table limit 1;

Выход ["","","",""]

Требуется вывод: ["abcd","efgh","ijkl"]

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете использовать

select split(regexp_replace("abcdefghijkl",'.*?([a-zA-Z0-9]{4})',',$1'),',') as output;

Шаблон .*?([a-zA-Z0-9]{4}) соответствует

  • .*? - любые 0+ символов, как можно меньше
  • ([a-zA-Z0-9]{4}) - Захват группы 1: 4 буквенно-цифровых символа

Совпадение заменяется на , и содержимое группы 1. Затем split разделяет результат запятой.

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