单hive查询提取一段字符串
Single hive query to extract a piece of string
我有一个像这样的列数据 "testdata" "NEW /abc/testapp/v1 POST/6.0"
,我想将输出检索为 "/abc/testapp/v1"
我可以像这样检索从 (/abc/testapp/v1 POST/6.0)
开始的数据
select regexp_extract(testdata,'^(.*?)(?:/)(.*)$', 2) from tablename;
但不确定如何删除同一 query.Can 中的 POST/6.0 部分,有人请帮忙吗?
您可以从第一个斜线开始,直到下一个斜线 space:
regexp_extract(testdata, '(/[^\s]+)', 0)
尝试以下任一方法
regexp_extract(testdata,'\S+', 0, 2)
-
regexp_extract(testdata,'/\S+', 0)
-
regexp_extract(testdata,'\s+(\S+)', 1)
我有一个像这样的列数据 "testdata" "NEW /abc/testapp/v1 POST/6.0"
,我想将输出检索为 "/abc/testapp/v1"
我可以像这样检索从 (/abc/testapp/v1 POST/6.0)
开始的数据
select regexp_extract(testdata,'^(.*?)(?:/)(.*)$', 2) from tablename;
但不确定如何删除同一 query.Can 中的 POST/6.0 部分,有人请帮忙吗?
您可以从第一个斜线开始,直到下一个斜线 space:
regexp_extract(testdata, '(/[^\s]+)', 0)
尝试以下任一方法
regexp_extract(testdata,'\S+', 0, 2)
-
regexp_extract(testdata,'/\S+', 0)
-
regexp_extract(testdata,'\s+(\S+)', 1)