Hadoop 使用ApachePig从url提取主机名

Hadoop 使用ApachePig从url提取主机名,hadoop,apache-pig,Hadoop,Apache Pig,比如说, url: https://pig.apache.org/docs/r0.14.0/func.html url: http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html URL不仅限于上述示例。我想将主机名提取为: host_name : pig.apache.org 谁能帮我一个忙。听起来你想做的是在每个url上运行一个正则表达式来提取主机名。这应该是这样的:

比如说,

 url: https://pig.apache.org/docs/r0.14.0/func.html
 url: http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
URL不仅限于上述示例。我想将主机名提取为:

 host_name : pig.apache.org

谁能帮我一个忙。

听起来你想做的是在每个url上运行一个正则表达式来提取主机名。这应该是这样的:

splt=FOREACH A GENERATE flatteregex_EXTRACTline,'.\:://?:www.?[^\/]+',1

听起来像是在每个url上运行一个正则表达式来提取主机名。这应该是这样的:

splt=FOREACH A GENERATE flatteregex_EXTRACTline,'.\:://?:www.?[^\/]+',1

您实际上是想提取主机名,而不是域名。pig.apache.org是主机名,apache.org是域名

幸运的是,Pig的好人已经编写了一个UDF来实现这一点。只需使用主机提取器UDF即可:

host = FOREACH row GENERATE org.apache.pig.piggybank.evaluation.util.apachelogparser.HostExtractor(referer);
API文件可在以下网址找到:

您实际上是想提取主机名,而不是域名。pig.apache.org是主机名,apache.org是域名

幸运的是,Pig的好人已经编写了一个UDF来实现这一点。只需使用主机提取器UDF即可:

host = FOREACH row GENERATE org.apache.pig.piggybank.evaluation.util.apachelogparser.HostExtractor(referer);
API文件可在以下网址找到: