`

Spark 实战入门

阅读更多

使用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集群就可算出结果

 

分享到:
评论

相关推荐

    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入门及实战文档

    包含spark快速入门、spark-sql介绍和应用、spark-streaming介绍和应用、spark项目实战等

    spark入门实战

    spark入门实战

    Spark 实战开发教程

    1、《Spark实战高手之路-从零开始》 2、《Spark开发环境配置及流程(Intellij_IDEA)》 3、《spark官方文档中文版》 4、《Spark 入门之 Scala 语言解释及示例讲解》 5、《Scala编码规范》 总结: Hadoop ...

    Spark入门实战系列(资源合集)

    6.SparkSQL(下)--Spark实战应用 6.SparkSQL(中)--深入了解运行计划及调优 7.SparkStreaming(上)--SparkStreaming原理介绍 7.SparkStreaming(下)--SparkStreaming实战 8.SparkMLlib(上)--机器学习及...

    Spark入门实战系列 超清自解压 PDF文件

    spark入门级资料推荐,开始是介绍简装 编译运行等基础介绍,从第五章开始 Hive介绍及部署 Hive实战 SparkSQL介绍 实战 深入了解运行计划及调优 SparkStreaming原理介绍 实战 SparkMLlib机器学习及SparkMLlib简介 ...

    Spark从入门到精通

    5、Spark案例实战的代码,几乎都提供了Java和Scala两个版本和讲解(一次性同时精通Java和Scala开发Spark); 6、大量全网唯一的知识点:基于排序的wordcount,Spark二次排序,Spark分组取topn,DataFrame与RDD的两种...

    Spark从入门到上手实战视频课程

    分享课程——Spark从入门到上手实战视频课程

    大数据Spark企业级实战

    《大数据Spark企业级实战》详细解析了企业级...并且结合Spark源码细致的解析了Spark内核和四大子框架,最后在附录中提供了的Spark的开发语言Scala快速入门实战内容,学习完此书即可胜任绝大多数的企业级Spark开发需要。

    Spark入门实战相关文档

    SPARK从入门到实战,完整详细的pdf文档。带你从0开始,一步一步变成spark大神,精通大数据分析。

    Spark从入门到上手实战

    Spark从入门到上手实战视频教程,完整版下载,含代码、软件、笔记、课件等。 Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐。Spark 生态栈框架,非常的强大,可以对数据进行批处理、流式...

    spark从入门到实战

    1.大数据分析框架概要、Spark课程学习计划及建议 2.为什么学习SCALA语言及SCALA语言介绍和学习提纲 3.SCALA环境搭建及IDEA安装配置(JAVA安装、SCALA安装及IDEA安装)) 4.SCALA语言HelloWorld及安装总结(作业...

    Spark从入门到上手实战视频教程

    课程分享——Spark从入门到上手实战视频教程,完整版下载,含代码、软件、笔记、课件等。Spark属于新起的基于内存处理海量数据的框架,由于其快速被众公司所青睐。Spark 生态栈框架,非常的强大,可以对数据进行...

    大数据Spark企业级实战版

    《大数据Spark企业级实战》详细解析了企业级...并且结合Spark源码细致的解析了Spark内核和四大子框架,最后在附录中提供了的Spark的开发语言Scala快速入门实战内容,学习完此书即可胜任绝大多数的企业级Spark开发需要。

    spark商业实战三部曲

    1.1 通过RDD实战电影点评系统入门及源码阅读... 2 1.1.1 Spark核心概念图解... 2 1.1.2 通过RDD实战电影点评系统案例... 4 1.2 通过DataFrame和DataSet实战电影点评系统... 7 1.2.1 通过DataFrame实战电影点评...

    Spark入门实战系列

    Spark生态圈的pdf资料。适合入门级别

    Spark SQL 入门到精通到项目实战的世界(全套日志分析)日志文件

    慕课网Spark SQL 入门到精通到项目实战的世界(全套日志分析)日志文件

    Spark SQL 入门到精通到项目实战的世界,日志文件100行

    Spark SQL 入门到精通到项目实战的世界,日志文件100行

Global site tag (gtag.js) - Google Analytics