欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spark API编程动手实战-06-对搜狗日志文件深入实战操作

程序员文章站 2022-06-14 12:32:59
...

本节中所用到的内容是来自搜狗实验室,网址为:http://www.sogou.com/labs/dl/q.html

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

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

上传到服务器后,解压并查看:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

查看Sogou文件内容:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

该文件的格式如下所示:

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

 

把解压后的文件上传到hdfs的data目录下:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

查看web控制台:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

大功告成,文件上传hdfs成功

 

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

先读取SogouQ.mini文件:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD


count操作后:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

count之后有2000条记录

首先过滤出有效的数据:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

可以发现该文件中的数据都是有效数据。

下面使用spark获得搜索结果排名第一同时点击结果排名也是第一的数据量:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

可以发现搜索结果排名第一同时点击结果排名也是第一的数据量为794条;

使用toDebugString查看一下其lineage:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

HadoopRDD->MappedRDD->MappedRDD->FilteredRDD->FilteredRDD->FilteredRDD

 

下面看用户ID查询次数排行榜:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

对sortedSogouQRdd进行collect操作:(不要乱collect 会出现OOM的)

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

结果:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

把结果保存在hdfs上:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

hdfs命令行查询:

part-0000:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

part-00001:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

web控制台查询:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

我们通过hadoop命令把上述两个文件的内容合并起来:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

查看一下合并后的本地文件:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD

 

使用head命令查看其具体内容:

Spark API编程动手实战-06-对搜狗日志文件深入实战操作
            
    
    博客分类: spark sogouhdfstextFilemapFilteredRDD