【问题标题】:Display substring seperated by / in Hive在 Hive 中显示由 / 分隔的子字符串
【发布时间】:2019-10-16 15:43:32
【问题描述】:

我的表中有一个列,其中包含以下条目:

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

我想显示没有文件名的字符串:

this/is/my/dir/

这是我正在使用的查询:

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

【问题讨论】:

  • 我不确定如何在 Hive 中实现该目标,但在 SQL-server 中,您可以执行this 之类的操作,其中您的表达式应为“/”。希望对您有所帮助。

标签: sql apache-spark hive hiveql


【解决方案1】:

好的,你可以用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/  |
+--------------------------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-17
    • 2017-06-27
    • 2021-12-31
    • 2023-03-22
    • 1970-01-01
    • 2023-03-11
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多