用户查询日志(SogouQ)之查询词URL最优Rank

输入数据来源, 用户查询日志(SogouQ), 感谢搜狗实验室! 此次选择的是精简版(一天数据, 63MB, 解压后145MB), 

PS1: 日志原格式是GB2312编码, 一定要记得转成UTF-8

PS2: 日志格式和格式说明:    // 搜狗实验室的官方说明

访问时间\t用户ID\t[查询词]\t该URL在返回结果中的排名\t用户点击的顺序号\t用户点击的URL, 

这个格式有坑, 深坑:

"该URL在返回结果中的排名\t用户点击的顺序号"这两个字段之间的分割符并不是制表符\t而是空格

val sogouQRdd = sc.textFile("hdfs://node1:9000/sogouQ/input")
sogouQRdd.cache    # 在下一次Action操作时, 将日志文件缓存到内存中

求出日志文件条目总数

val itemCountRdd = sogouQRdd.count
itemCountRdd: Long = 1724264

对于每一个查询词, 求出该 URL 在返回结果中的排名为1, 且用户点击的顺序号为1的条目总数

这说明此次搜索结果的URL最优Rank 

val suitableRankRdd = sogouQRdd.filter(_.split('\t').length == 5).map(_.split('\t')).filter(_(3).split(' ')(0).toInt == 1).filter(_(3).split(' ')(1).toInt == 1).count
suitableRankRdd: Long = 279859

计算查询词 URL 最优 Rank 的频率:

最优Rank频率 URL最优Rank次数 / 条目总数

suitableRankRdd / itemCountRdd = 0.1623

所以查询词 URL最优Rank 的频率为 16.23%

WordCount 模型适用很多数据统计, 其实简单的 WordCount 可以处理, 分析出很多的信息, 

你可能感兴趣的:(wordcount,spark-shell,最优的PageRank)