MapReduce程序按天统计唯一用户

时间:2017-04-04 04:16:20

标签: python hadoop mapreduce

我想创建一个MapReduce程序来计算每天使用网站的唯一身份用户数。我的数据集是.csv文件,我正在提取; (date, user)其中date是dd-MM-yyyy HH:mm形式的字符串,user也是字符串。

我知道在scala中我会做(粗略地)沿着这些行;

val rdd = data.map(x => (x.date -> user))
val users = rdd.reduceByKey(_ + _)

获取每天的用户列表,然后我可以计算唯一身份用户。

我的问题是我需要在Hadoop中执行此操作,使用python为mapper和reducer创建文件。我对python不是很熟悉,并且无法决定如何按日期过滤用户。

以下是我对映射器的尝试:

import sys

for line in sys.stdin:
   line = line.strip()
   splits = line.split(",")
   timestamp = splits[0]
   user = splits[1]                
   print '%s\t%s\t%s' % (user, timestamp)

但我真的不知道如何创建减速器。任何帮助都将非常感激。

我也看到了这个问题:What's the best way to count unique visitors with Hadoop? 并且想要遵循给出的建议,但同样,我不知道如何开始创建reducer.py文件来执行此操作。

0 个答案:

没有答案