Hive: извлечение подстроки из / разделенного столбца - PullRequest
0 голосов
/ 07 июня 2019

В моей таблице есть записи типа:

this/is/my/dir/file
this/is/my/another/dir/file

Я хочу отобразить строку без / имя файла:

this/is/my/dir

Это мой код:

select regexp_replace(filepath,'[^/]+[/]$','')

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

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

select regexp_replace(filepath,'/[^/]+$','')

См. Демоверсию регулярных выражений и график регулярных выражений :

enter image description here

Сведения о регулярном выражении

  • / - / char
  • [^/]+ - 1+ символов кроме /
  • $ - конец строки.
0 голосов
/ 07 июня 2019

Здесь мы можем использовать выражение, похожее на:

(.+)(\/.+)

и наш код может выглядеть следующим образом:

select regexp_replace(filepath,'^(.+)(\/.+)$','$1')

или

select regexp_replace(filepath,'(.+)(\/.+)','$1')

Наш желаемый вывод находится в первой группе захвата $1, за которой следует последняя косая черта и имя файла, во второй группе захвата $2.

Демо

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