Hadoop Hive-拆分字符串

| 我是新蜂巢。 我的查询:在日志文件中,我们有一个请求字段,例如\“ GET /img/home/search-user-ico.jpg HTTP / 1.1 \”。有10,000多个记录。 范例: \“获取/img/home/search-user-ico.jpg HTTP / 1.1 \” \“ GET /JavaScript/jquery-1.4.2.min.js HTTP / 1.1 \” \“获取/ ems / home HTTP / 1.1 \” \“ POST / ir HTTP / 1.1 \” \“获取/CSS/jquery/themes/base/jquery.ui.button.css HTTP / 1.1 \” \“获取/CSS/jquery/themes/base/images/ui-bg_glass_75_e6e6e6_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(request,\'a-zA-Za-zA-Z [a-zA-Z] \',2); 从日志文件限制10中选择regexp_extract(request,\'GET(\\ s)([a-zA-Z])\',2); 从日志文件限制10中选择regexp_extract(request,\'。?(?\\ s)(。?)(\\ s)(。*?)\',2); 从日志文件限制10中选择regexp_extract(request,\'。(\\ s)(。)(\\ s)(。*)\',2); 谢谢 -乔
已邀请:
我使用了RegexBuddy和您提供的示例,并获得了此正则表达式
([\\S]*) HTTP
的URL。 假设URL中没有文字空间,可以进行编码。 将其插入配置单元查询应该看起来像
select regexp_extract(request, \' (\\\\S*) HTTP\', 1) from logfile;
(请注意,
(\\\\S)
之前有一个空格。这可能很明显,但是只是想对它进行评论,以防错过它) 我已经在hive中进行了一些测试,并且至少与提供的示例类似的测试都可以正常工作。

要回复问题请先登录注册