Spark入门--实战操作搜狗日志文件

来源:互联网 发布:淘宝网店培训班 编辑:程序博客网 时间:2024/06/05 20:00

日志下载地址
我们使用的是迷你版本的tar.gz格式的文件,其大小为87K
该文件的格式如下所示:

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

我们使用Spark获得搜索结果排名第一同时点击结果排名也是第一的数据量,也就是第四列值为1同时第五列的值也为1的总共的记录的个数。

打开spark-shell

val rdd = sc.textFile("/input/SogouQ.mini")rdd.countrdd2 = rdd.map(x=>x.split("\t")).filter(x=>x(3).toInt==1).filter(x=>x(4).toInt==1)rdd2.count

共2000行,结果是794行
其中 x=>x(3) 也可以简写为 _(3)
x=>x.split(“\t”) :x是每一行,String型,将它切成String型数组,这个做完之后,行数不变,每一行只是变成了String型数组而已。
x=>x(3).toInt==1 :scala的下标用()表示,不像Java用[ ]表示。当然它也是从0开始的。
因为是String型,所以要用.toInt转为Int型,看来scala的这个String–Int的转换函数比Java方便啊。
这就是为什么scala是快速编程的语言。

下面看session查询次数排行榜:

val rdd3 =rdd.map(x=>x.split("\t"))rdd3.countval rdd4=rdd3.map(x=>(x(1),1)).reduceByKey((A,B)=>(A+B)).map(x=>      (x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile("/o1")
0 0
原创粉丝点击