Hive Hadoop配置单元-拆分字符串

Hive Hadoop配置单元-拆分字符串,hive,Hive,我是一个新蜂王 我的查询:在日志文件中,我们有一个请求字段,如“GET/img/home/search-user-ico.jpg HTTP/1.1”。有10000多条记录可用 示例: “GET/img/home/search-user-ico.jpg HTTP/1.1” “GET/JavaScript/jquery-1.4.2.min.js HTTP/1.1” “GET/ems/home HTTP/1.1” “POST/ir HTTP/1.1” “GET/CSS/jquery/themes/ba

我是一个新蜂王

我的查询:在日志文件中,我们有一个请求字段,如“GET/img/home/search-user-ico.jpg HTTP/1.1”。有10000多条记录可用

示例:

“GET/img/home/search-user-ico.jpg HTTP/1.1”
“GET/JavaScript/jquery-1.4.2.min.js HTTP/1.1” “GET/ems/home HTTP/1.1” “POST/ir HTTP/1.1” “GET/CSS/jquery/themes/base/jquery.ui.button.CSS HTTP/1.1” “GET/CSS/jquery/themes/base/images/ui-bg_glass_75_e6e6_1x400.png HTTP/1.1”
“GET/JavaScript/jquery/jquery-ui-1.8.5.custom.min.js HTTP/1.0”

从这个字段“GET/img/home/search-user-ico.jpg HTTP/1.1”,我只想要这个部分/img/home/search-user-ico.jpg,我想把它从GET、POST和HTTP/1.1中分离出来,所以请帮助我如何使用wiki中可用的字符串函数来分离它。我尝试了wiki中可用的一些语法。但我现在无能为力

我试着用这样的语法

从日志文件限制10中选择regexp_extract(请求'a-zA-zA-zA-Z[a-zA-Z]',2)

从日志文件限制10中选择regexp_extract(请求,'GET(\s)([a-zA-Z]),2)

从日志文件限制10中选择regexp_extract(请求、.?(\s)(.?)(\s)(.*),2)

从日志文件限制10中选择regexp_提取(请求“,”(\s)()(\s)(.*),2)

谢谢 -Joe

我使用了您提供的示例,只得到了这个regex
([\S]*)HTTP的URL
这假设URL中没有文本空格,编码的就可以了

将其插入到配置单元查询中应该类似于

select regexp_extract(request, ' (\\S*) HTTP', 1) from logfile;
(需要注意的是,
(\\S)
前面有一个空格。这可能很明显,但只是想对其进行注释,以防遗漏)

我在蜂箱中做了一些测试,它正在工作,至少测试与提供的样本类似