使用spark分析sogou日志
下载用户查询日志的精简版,完整版http://download.labs.sogou.com/dl/q.html
数据格式说明:
访问时间\t用户ID\t[查询词]\t该URL在返回结果中的排名\t用户点击的顺序号\t用户点击的URL
其中,用户ID是根据用户使用浏览器访问搜索引擎时的Cookie信息自动赋值,即同一次使用浏览器输入的不同查询对应同一个用户ID。实现以下功能:
1、最热门的查询词排行 top10
2、用户查询排行 top10
3、网站访问排行版(不用区分二级域名) top50
这从我们下载下来的文件存在hdfs中,关于hadoop的安装,我参考了http://blog.csdn.net/stark_summer/article/details/4242427,这篇博客。
由于下载下来的文件格式是GBK的,上传都hdfs上之前需要转码一下。
find *.txt -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}.txt" \;
然后把下载的文件上传到hdfs
hadoop fs -mkdir /data hadoop fs -put /root/dfs/SogouQ.reduced /data/sogou
接下来,我们就可以写spark程序来实现以上的问题
import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ object WebLogInfo { def main(args: Array[String]) { val dataFile = "hdfs://vs1:9000/data/sogou/SogouQ.reduced" val resultFile = "hdfs://vs1:9000/data/result" val conf = new SparkConf().setAppName("WebLogInfoApp") val sc = new SparkContext(conf) val linesRdd = sc.textFile(dataFile).map(line => line.split('\t')).filter(_.length >= 5) val userArray = linesRdd.map(w => (w(1), 1)).reduceByKey(_+_).map(x => (x._2, x._1)).sortByKey(false).take(10) val userRdd = sc.parallelize(userArray, 1).map(x => (x._2, x._1)) val wordArray = linesRdd.map(w => (w(2), 1)).reduceByKey(_+_).map(x => (x._2, x._1)).sortByKey(false).take(10) val wordRdd = sc.parallelize(wordArray, 1).map(x => (x._2, x._1)) val urlArray = linesRdd.map(w => (w(4).split('/')(0), 1)).reduceByKey(_+_).map(x => (x._2, x._1)).sortByKey(false).take(50) val urlRdd = sc.parallelize(urlArray, 1).map(x => (x._2, x._1)) (userRdd ++ wordRdd ++ urlRdd).repartition(1).saveAsTextFile(resultFile) sc.stop() } }
把代码打成jar上传到spark集群就可算出结果
相关推荐
6.SparkSQL(下)--Spark实战应用.pdf 6.SparkSQL(中)--深入了解运行计划及调优.pdf 7.SparkStreaming(上)--SparkStreaming原理介绍.pdf 7.SparkStreaming(下)--SparkStreaming实战.pdf 8.SparkMLlib(上)--...
根据提供的文件信息,“Spark 2.0入门+项目实战”主要涵盖了Spark 2.0的基础知识与实际应用案例。下面将详细介绍与该标题和描述相关的知识点。 ### 一、Spark 2.0简介 #### 1.1 Spark概述 Apache Spark是一种开源...
这份"spark入门及实战文档"提供了全面的学习路径,涵盖了从基础到实践的多个方面,帮助初学者快速掌握Spark的核心技术和实际应用。 1. **Spark快速入门**: Spark的核心概念是弹性分布式数据集(Resilient ...
- **Spark实战应用:**通过具体案例展示了如何利用Spark SQL进行数据分析。 - **2.5 Spark Streaming:** - **实时流计算Spark Streaming原理介绍:**阐述了Spark Streaming的工作原理及其在实时数据分析中的应用...
本压缩包包含四本电子书,分别是《Spark SQL入门与实践指南》、《Hadoop权威指南(中文第3版)》、《Hadoop源代码分析(完整版)》以及《Spark快速大数据分析》,旨在帮助读者深入理解这两个平台的核心技术和应用。...
1、《Spark实战高手之路-从零开始》 2、《Spark开发环境配置及流程(Intellij_IDEA)》 3、《spark官方文档中文版》 4、《Spark 入门之 Scala 语言解释及示例讲解》 5、《Scala编码规范》 总结: Hadoop ...
6.SparkSQL(下)--Spark实战应用 6.SparkSQL(中)--深入了解运行计划及调优 7.SparkStreaming(上)--SparkStreaming原理介绍 7.SparkStreaming(下)--SparkStreaming实战 8.SparkMLlib(上)--机器学习及...
《Spark实战开发》 Apache Spark,作为大数据处理领域的一颗璀璨明星,因其高效、通用的特性,被广泛应用于数据处理、机器学习、图形处理等多个场景。Spark的核心设计理念是内存计算,它通过在内存中存储数据,实现...
Spark入门实战系列是一套针对初学者的PDF教程,旨在帮助读者快速掌握Spark的基本概念和实际应用。本系列涵盖了Spark的核心组件,包括Spark SQL、Spark运行架构、Spark SQL的深度解析与调优、Spark的编译与部署、Hive...
spark入门级资料推荐,开始是介绍简装 编译运行等基础介绍,从第五章开始 Hive介绍及部署 Hive实战 SparkSQL介绍 实战 深入了解运行计划及调优 SparkStreaming原理介绍 实战 SparkMLlib机器学习及SparkMLlib简介 ...
5、Spark案例实战的代码,几乎都提供了Java和Scala两个版本和讲解(一次性同时精通Java和Scala开发Spark); 6、大量全网唯一的知识点:基于排序的wordcount,Spark二次排序,Spark分组取topn,DataFrame与RDD的两种...
分享课程——Spark从入门到上手实战视频课程
《Spark入门实战相关文档》是针对想要学习和掌握Apache Spark技术的初学者及大数据分析师的一份详尽指南。Spark作为一款高效、通用的并行计算框架,被广泛应用于大数据处理领域,尤其在实时分析和机器学习任务中表现...
《大数据Spark企业级实战》详细解析了企业级...并且结合Spark源码细致的解析了Spark内核和四大子框架,最后在附录中提供了的Spark的开发语言Scala快速入门实战内容,学习完此书即可胜任绝大多数的企业级Spark开发需要。
### Spark从入门到实战——SCALA编程篇 #### 一、大数据分析框架概要与Spark课程学习计划 在大数据时代,高效处理海量数据成为企业和组织的核心需求之一。Spark作为当前最受欢迎的大数据分析框架之一,以其高性能...
Spark从入门到上手实战视频教程,完整版下载,含代码、软件、笔记、课件等。 Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐。Spark 生态栈框架,非常的强大,可以对数据进行批处理、流式...
《大数据Spark企业级实战》详细解析了企业级...并且结合Spark源码细致的解析了Spark内核和四大子框架,最后在附录中提供了的Spark的开发语言Scala快速入门实战内容,学习完此书即可胜任绝大多数的企业级Spark开发需要。
课程分享——Spark从入门到上手实战视频教程,完整版下载,含代码、软件、笔记、课件等。Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐。Spark 生态栈框架,非常的强大,可以对数据进行...