使用Spark计算PV、UV

本文介绍了如何使用Spark在Scala Shell中处理日志文件,计算页面浏览量(PV)和独立访客数(UV)。日志数据包含id, ip, url, ref, cookie和time_stamp字段。首先,将日志数据存入HDFS,然后从HDFS读取1000行数据计算PV。接着,通过分析不同cookie来确定UV,以此理解为独立用户访问。最后,通过Python脚本来验证计算结果的准确性。" 51829340,5098759,树状数组解法:区间更新与区间查询,"['数据结构', '算法', '树状数组', '区间操作']
摘要由CSDN通过智能技术生成

日志字段格式:

id,ip,url,ref,cookie,time_stamp

把日志文件放到HDFS。仅取了1000行。

hadoop fs -put 1000_log hdfs://localhost:9000/user/root/input

直接在Scala Shell中读取文件并计算PV。

scala> val textFile = sc.textFile("hdfs://localhost:9000/user/root/input/1000_log")
scala> val textRDD = textFile.map(_.split("\t")).filter(_.length == 6)
scala> val result = textRDD.map(w => ((new java.net.URL(w(2))).getHost,1)).reduceByKey(_ + _).map(item => item.swap).sortByKey(false).map(item => item.swap)
scala> result.saveAsTextFile("hdfs://localhost:9000/user/root/out8.txt")
从HDFS上取回结果:

hadoop fs -get hdfs://localhost:9000/user/root/out8.txt
查看结果:
$ more out8.txt/part-00000 
(www.j1.com,126)
(tieba.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值