我正在寻找一个库来帮助mi从提取者中提取功能,以便与Hadoop(Pig或Hive)一起使用。我主要对移动用户感兴趣 我希望能够提取以下功能:
我正在考虑使用像WURLF或OpenDDR这样的项目,但是他们提供的API可以在我的Hadoop作业中使用,因为需要外部服务器来提供API,所以它们不会非常有效。
如果你知道这样的项目请告诉我,或者我正在寻找解决方案如何有效地使用WURLF或OpenDDR与Hadoop。
答案 0 :(得分:2)
此软件包包含一个可能有用的猪UDF。
答案 1 :(得分:0)
使用Hadoop和Wurfl最简单的方法是使用Hadoop的流媒体界面,并用PHP或Python编写mapper和reducer脚本。映射器脚本将导入WURFL库,然后您可以查找设备并发出您要查找的变量。减速器应该适当计数。
有关Hadoop,Python和Streaming接口的优秀教程可在以下网址找到:http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/
答案 2 :(得分:0)
如果你可以使用RegEx,那么:Java or Pig regex to strip out values from UserAgent string可能有所帮助。
如果RegEx没有帮助,那么您可能需要编写一个可以解析用户代理并输出所需信息的Pig的自定义UDF:http://wiki.apache.org/pig/UDFManual
我最终用Python编写了一个Hadoop流工作 - Python map程序解析了useragent字符串并输出了传递给reducer的变量。在伪代码中,它看起来像这样:
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"