Разбор Useragent с Hadoop - PullRequest
       29

Разбор Useragent с Hadoop

1 голос
/ 02 февраля 2012

Я ищу библиотеку, которая поможет мне с извлечением функций из пользовательских агентов для использования с Hadoop (Свинья или Улей).Меня интересуют в основном пользователи мобильных устройств.
Я хотел бы иметь возможность извлекать такие функции, как:

  • версия ОС
  • версия браузера
  • размер экрана
  • имя поставщика
  • название модели
  • и т. Д. (Функции, явно не указанные в useragent)

Я рассматривал возможность использования таких проектов, как WURLFили OpenDDR, но они предоставляют API, который можно использовать в моих заданиях Hadoop, что не очень эффективно, так как необходим внешний сервер для обслуживания этого API.

Если вам известен такой проект, пожалуйста, дайте мне знать,В качестве альтернативы я ищу решение, как эффективно использовать WURLF или OpenDDR с Hadoop.

Ответы [ 3 ]

2 голосов
/ 19 июля 2013

Этот пакет содержит UDF для свиньи, которая может помочь.

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

0 голосов
/ 23 марта 2012

Если вы можете использовать RegEx, может помочь что-то вроде этого: Регулярное выражение Java или Pig для удаления значений из строки UserAgent может помочь.

Если RegEx не помогает, вам, возможно, придется взглянуть на написание пользовательского UDF для Pig, который может анализировать пользовательский агент и выводить необходимую вам информацию: http://wiki.apache.org/pig/UDFManual

Я закончилдо написания потокового задания Hadoop на Python - программа Python map анализировала строку useragent и выводила переменные, которые были переданы редуктору.В псевдокоде это выглядело примерно так:

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 голосов
/ 07 марта 2012

Самый простой способ использовать Hadoop и Wurfl - это использовать потоковый интерфейс Hadoop и писать свои скрипты мапперов и редукторов на PHP или Python. Сценарий mapper импортирует библиотеку WURFL, а затем вы можете искать устройство и выдавать переменные, которые вы ищете. Редуктор должен рассчитывать соответственно.

Хороший учебник по Hadoop, Python и интерфейсу Streaming можно найти по адресу: http://www.michael -noll.com / tutorials / writing-an-hadoop-mapreduce-program-in-python /

...