首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Hadoop解析用户代理

用Hadoop解析用户代理
EN

Stack Overflow用户
提问于 2012-02-02 14:51:53
回答 3查看 2.7K关注 0票数 1

我正在寻找一个库来帮助mi从与Hadoop (Pig或Hive)一起使用的用户代理中提取特性。我主要对移动用户感兴趣。

我希望能够提取以下特征:

version

  • browser操作系统
  • OS
  • 屏幕大小
  • 供应商名称
  • 型号名称

H 111等。(用户代理中未显式提供的特性)

我正在考虑使用像WURLF或OpenDDR这样的项目,但是它们提供了可以在我的Hadoop作业中使用的API,这将不会非常有效,因为需要外部服务器来服务该API。

如果你知道这样的项目,请让我知道,或者,我正在寻找解决方案,如何有效地使用WURLF或OpenDDR与Hadoop。

EN

回答 3

Stack Overflow用户

发布于 2013-07-19 15:50:22

此包包含一个用于Pig的UDF,可能会有所帮助。

https://github.com/tobie/ua-parser

票数 2
EN

Stack Overflow用户

发布于 2012-03-07 18:19:45

使用Hadoop和Wurfl的最简单方法是使用Hadoop的流接口,用PHP或Python编写映射程序和还原器脚本。mapper脚本将导入WURFL库,然后您可以查找设备并发出正在寻找的变量。减速机应适当计数。

有关Hadoop、Python和流接口的好教程可以在:http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/上找到。

票数 0
EN

Stack Overflow用户

发布于 2012-03-22 20:29:17

如果您可以使用RegEx,如下所示:Java or Pig regex to strip out values from UserAgent string可能会有所帮助。

如果RegEx没有帮助,那么您可能需要考虑为Pig编写一个自定义UDF,它可以解析用户代理并输出您需要的信息:http://wiki.apache.org/pig/UDFManual

最后,我用Python编写了Hadoop流作业-- Python程序解析了useragent字符串并输出了变量,这些变量被传递给还原器。在伪代码中,它看起来如下所示:

代码语言:javascript
复制
for line in sys.stdin:
  result = mylog.parse (line)
  # mylog.parse() results a list/dictionary with the parsed line
  useragent = result['useragent']
  if ('indows' in useragent):
    os = "Windows"
  elif ('ndroid' in useragent):
    os = "Android"
  elif ('Linux' in useragent):
    os = "Linux"
  print os + "\t" + "1" 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9114377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档