使用Spark进行搜狗日志分析实例——列出搜索不同关键词超过10个的用户及其搜索的关键词

 1 package sogolog
 2
 3 import org.apache.hadoop.io.{LongWritable, Text}
 4 import org.apache.hadoop.mapred.TextInputFormat
 5 import org.apache.spark.rdd.RDD
 6 import org.apache.spark.{SparkConf, SparkContext}
 7
 8
 9
10 class RddFile {
11   def readFileToRdd(path: String): RDD[String] = {
12     val conf = new SparkConf().setMaster("local").setAppName("sougoDemo")
13     val sc = new SparkContext(conf);
14     //使用这种方法能够避免中文乱码
15     sc.hadoopFile("J:\\scala\\workspace\\first-spark-demo\\sougofile\\SogouQ.reduced",classOf[TextInputFormat], classOf[LongWritable], classOf[Text]).map{
16       pair =>  new String(pair._2.getBytes, 0, pair._2.getLength, "GBK")}
17   }
18 }
 1 package sogolog
 2
 3 import org.apache.spark.rdd.RDD
 4
 5 /**
 6   * 列出搜索不同关键词超过3个的用户及其搜索的关键词
 7   */
 8 object userSearchKeyWordLT3 {
 9   def main(args: Array[String]): Unit = {
10     //1、读入文件
11     val textFile = new RddFile().readFileToRdd("J:\\scala\\workspace\\first-spark-demo\\sougofile\\SogouQ.reduced")
12
13     //2、map操作,将每行的用户、关键词读入新的RDD中
14     val userKeyWordTuple:RDD[(String,String)] = textFile.map(line=>{
15       val arr = line.split("\t")
16       (arr(1),arr(2))
17     })
18
19     //3、reduce操作,将相同用户的关键词进行合并
20     val userKeyWordReduced = userKeyWordTuple.reduceByKey((x,y)=>{
21       //去重
22       if(x.contains(y)){
23         x
24       }else{
25         x+","+y
26       }
27     })
28
29     //4、使用filter进行最终过滤
30     val finalResult = userKeyWordReduced.filter(x=>{
31       //过滤小于10个关键词的用户
32       x._2.split(",").length>=10
33     })
34
35     //5、打印出结果
36     finalResult.collect().foreach(println)
37   }
38 }

运行结果:

原文地址:https://www.cnblogs.com/wbh1000/p/9813552.html

时间: 2024-11-07 22:58:38

使用Spark进行搜狗日志分析实例——列出搜索不同关键词超过10个的用户及其搜索的关键词的相关文章

使用Spark进行搜狗日志分析实例——统计每个小时的搜索量

1 package sogolog 2 3 import org.apache.spark.rdd.RDD 4 import org.apache.spark.{SparkConf, SparkContext} 5 6 /** 7 * 统计每小时搜索次数 8 */ 9 /* 10 搜狗日志示例 11 访问时间(时:分:秒) 用户ID [查询词] 该URL在返回结果中的排名 用户点击的顺序号 用户点击的URL 12 00:00:00 2982199073774412 [360安全卫士] 8 3 d

Spark学习四:网站日志分析案例

Spark学习四:网站日志分析案例 标签(空格分隔): Spark Spark学习四网站日志分析案例 一创建maven工程 二创建模板 三日志分析案例 一,创建maven工程 1,执行maven命令创建工程 mvn archetype:generate -DarchetypeGroupId=org.scala-tools.archetypes -DarchetypeArtifactId=scala-archetype-simple -DremoteRepositories=http://scal

打造基于hadoop的网站日志分析系统(5)之spark在日志分析系统里的简单应用

1.下载spark和运行 wget http://apache.fayea.com/apache-mirror/spark/spark-1.0.0/spark-1.0.0-bin-hadoop2.tgz 我这里下载的是1.0.0版,由于我们只是测试spark的用法所以不需要配置spark集群,只需把下好的文件解压,进入bin/文件夹. spark支持scala,java和python. scala和java输入命令:./spark-shell python 输入命令 ./pyspark 进入控制

Hadoop经典案例Spark实现(七)——日志分析:分析非结构化文件

相关文章推荐 Hadoop经典案例Spark实现(一)--通过采集的气象数据分析每年的最高温度 Hadoop经典案例Spark实现(二)--数据去重问题 Hadoop经典案例Spark实现(三)--数据排序 Hadoop经典案例Spark实现(四)--平均成绩 Hadoop经典案例Spark实现(五)--求最大最小值问题 Hadoop经典案例Spark实现(六)--求最大的K个值并排序 Hadoop经典案例Spark实现(七)--日志分析:分析非结构化文件 1.需求:根据tomcat日志计算ur

以慕课网日志分析为例 进入大数据 Spark SQL 的世界

详情请交流  QQ  709639943 01.以慕课网日志分析为例 进入大数据 Spark SQL 的世界 02.漫谈spring cloud分布式服务架构 03.Spring Cloud微服务实战视频课程 04.漫谈spring cloud 与 spring boot 基础架构 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Sprin

CK2255-以慕课网日志分析为例 进入大数据 Spark SQL 的世界

新年伊始,学习要趁早,点滴记录,学习就是进步! 随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853  获取资料. 下载地址:https://pan.baidu.com/s/1hsU5EIS 以慕课网日志分析为例 进入大数据 Spark SQL 的世界 本课程以"慕课网日志分析"这一大数据应

Linux下安装部署AWStats日志分析系统实例

AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息.       此文章主要讲解如何在linux系统下安装部署关于对Apache网站服务站日志分析的AWStats. 实验步骤一,安装部署AWStats分析软件. 一,安装AWStats软件包. 直接将其解压到/usr/local/awstats目录下即可完成安装. 使用命令:mkdir -p /usr/local/awstats tar z

Linux环境下安装部署AWStats日志分析系统实例

AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息.       此文章主要讲解如何在linux系统下安装部署关于对Apache网站服务站日志分析的AWStats. 实验步骤一,安装部署AWStats分析软件. 一,安装AWStats软件包. 直接将其解压到/usr/local/awstats目录下即可完成安装. 使用命令:mkdir -p /usr/local/awstats tar z

ELK日志分析系统(实例!!!)

ELK日志分析系统概述 ELK是Elasticsearch.Logstash.Kibana的简称 Elasticsearch是实时全文搜索和分析引擎 Logstash是一个用来搜集.分析.过滤日志的工具 Kibana是一个基于Web的图形界面,用于搜索.分析和可视化存储在 Elasticsearch指标中的日志数据 日志服务器 提高安全性 集中存放日志 缺陷:对日志的分析困难 ELK日志分析系统 收集数据:LogstashAgent 建立索引:ElasticSearchCluster 数据可视化