Как отобразить подстроку, разделенную / в Hive - PullRequest
0 голосов
/ 31 мая 2019

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

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

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

this/is/my/dir/

Это запрос, который я использую:

select regexp_replace('this/is/my/another/dir/file','[^/]+','');

1 Ответ

1 голос
/ 31 мая 2019

ОК, вы можете использовать regexp_replace для удаления file и только зарезервировать путь dir, так как мы знаем, что имя файла не содержит символа '/' и всегда находится в конце пути dir, таким образом, регулярное выражение может быть записано как '[^/]+$', примеры приведены ниже, это означает, что заменить подстроку регулярным выражением '[^/]+$' на пустую ''.

select regexp_replace('/this/is/my/dir/file','[^/]+$','') as dir;
+-------------------+
|        dir        |
+-------------------+
| /this/is/my/dir/  |
+-------------------+

select regexp_replace('this/is/my/another/dir/file','[^/]+$','') as dir;
+--------------------------+
|           dir            |
+--------------------------+
| this/is/my/another/dir/  |
+--------------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...