shell - 如何使用Pig/Hive从Weblog文件中的URL中提取字符串

标签 shell hadoop hive apache-pig

如何使用Pig / Hive从Weblog文件中的URL中提取字符串

输入文件

122.161.182.202 - jane [21/Jul/2012:13:14:17-0700] "GET /rss.pl HTTP/1.1"   200 35942 "http://www.e.com/bam_applicatin/VD55173061"     "IE/4.0 (compatible; MSIE 7.0; Windows NT 6.0;   Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3;    OfficeLivePatch.1.3; MSOffice 12)"

所需的输出:
122.161.182.202 - jane [21/Jul/2012:13:14:17-0700] "GET /rss.pl HTTP/1.1"   200 35942 "VD55173061"     "IE/4.0 (compatible; MSIE 7.0; Windows NT 6.0;   Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3;    OfficeLivePatch.1.3; MSOffice 12)"

输入网址
http://www.e.com/bam_applicatin/VD55173061

网址中的所需字符串
VD55173061

我想使用Pig或Hive处理Weblog。请帮忙 ..

最佳答案

使用 Apache Pig

请参阅http://pig.apache.org/docs/r0.14.0/func.html#substring以获取API文档和用法

输入:

http://www.e.com/bam_applicatin/VD55173061

pig 脚本:
url_data = LOAD 'input.csv' USING  PigStorage(',') AS  (url:chararray);
req_url = FOREACH url_data GENERATE SUBSTRING(url,LAST_INDEX_OF(url, '/') + 1, (int)SIZE(url));
DUMP req_url;

输出:
VD55173061

关于shell - 如何使用Pig/Hive从Weblog文件中的URL中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569784/

相关文章:

hadoop - HDFS需要3倍的数据空间吗?

java - 创建 spark 客户端失败 : Hive on spark exception

hadoop - hive ,直线 : Peer indicated failure: GSS initiate failed

hadoop - Hive INSERT OVERWRITE DIRECTORY 命令输出没有用定界符分隔。为什么?

macos - 寻找 。并替换为 . & 新队 & ;在 OSX 中(对于新手来说)

hadoop - 如何处理(遍历)hadoop/Spark 集群上的大型 JSON 文件?

shell - 按端口查找进程

hadoop - 配置单元表未在命令行界面中显示

linux - sed 搜索范围并打印第一组

arrays - 传递给函数后在 bash 中获取数组长度时出错