第一个程序
将搜狗实验室的日志分析,分析出查询排行榜;
需要先将txt文件传到HDFS上,然后分析;
程序代码:
package main.scala
import org.apache.spark.{ SparkContext, SparkConf }
import org.apache.spark.SparkContext._
object SogouQA {
def main(args: Array[String]) {
// if (args.length == 0) { 都在里面运行不需要提交参数
// System.err.println("Usage: WordCount1 <file1>")
// System.exit(1)
// }
val conf = new SparkConf().setAppName("SogouQA")
val sc = new SparkContext(conf)
//搜索结果排名第1,但是点击次序排在第2的数据有多少?
// 数据分为六列,用tab健分开,第2列是session
val rdd1 = sc.textFile("hdfs://hadoop1:8000/datatest/test/SogouQ1.txt")
val rdd2 = rdd1.map(_.split("\t")).filter(_.length == 6)
rdd2.count()
//session查询次数排行榜、相当于查找session最多的
//思路:先把session变成KV格式,然后每个元素做reduceByKey,这样就求出和,知道哪个最大,
//这时,再把次数和sessionId调换,就是KV调换,再排序,再调换,就得出了排行榜
val rdd4 = rdd2.map(x => (x(1), 1)).reduceByKey(_ + _).map(x => (x._2, x._1)).sortByKey(false).map(x => (x._2, x._1))
rdd4.saveAsTextFile("hdfs://hadoop1:8000/datatest/test/output1")
// val rdd = sc.parallelize(Array("1","2"));
sc.stop()
}
}
1、上传SogouQA.txt到HDFS上
bin/hdfs dfs -put SogouQ1.txt /datatest/test/
2、将代码打成jar,Eclipse导出即可;然后将SQA.JAR放到spark目录下;
然后用Spark-submit提交:
bin/spark-submit --master spark://hadoop1:7077 --class main.scala.SogouQA SQA.jar
3、当程序运行时,我们在Spark的网页客户端上能看到以下信息:
4、运行结束后,我们能看到HDFS上的文件;
5、这些文件是零碎的,我们需要在命令行里将这个合并(目前只知道这一种办法)
bin/hdfs dfs -getmerge hdfs://hadoop1:8000/datatest/test/output1 result1
[b]6、
ls -lsa
查看,有了result1[/b]
7、我们查看下,取前10名看下
[hadoop@hadoop1 hadoop240]$ head result1
(b3c94c37fb154d46c30a360c7941ff7e,676)
(cc7063efc64510c20bcdd604e12a3b26,613)
(955c6390c02797b3558ba223b8201915,391)
(b1e371de5729cdda9270b7ad09484c4f,337)
(6056710d9eafa569ddc800fe24643051,277)
(637b29b47fed3853e117aa7009a4b621,266)
(c9f4ff7790d0615f6f66b410673e3124,231)
(dca9034de17f6c34cfd56db13ce39f1c,226)
(82e53ddb484e632437039048c5901608,221)
(c72ce1164bcd263ba1f69292abdfdf7c,214)
这里我们已经分析结束。
附录
SogouQA.txt的文件格式如下:
第一列是时间 第2列是sessionId 第三列是搜索词 第4列是搜索结果排名 第5列是点击次序 第六列是url
其余数据,可以自己造数据
20111230000005 57375476989eea12893c0c3811607bcf 奇艺高清 1 1 http://www.qiyi.com/
20111230000005 66c5bb7774e31d0a22278249b26bc83a 凡人修仙传 3 1 http://www.booksky.org/BookDetail.aspx?BookID=1050804&Level=1
20111230000007 b97920521c78de70ac38e3713f524b50 本本联盟 1 1 http://www.bblianmeng.com/
20111230000008 6961d0c97fe93701fc9c0d861d096cd9 华南师范大学图书馆 1 1 http://lib.scnu.edu.cn/
- 大小: 8.6 KB
- 大小: 24.7 KB
- 大小: 10.7 KB
分享到:
相关推荐
hdp spark
折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业的提交过程。这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配。今天我要讲的是如何创建这个Driver Program的过程。...
kafka_2.11-0.11.0.0.tgz + spark-streaming-kafka-0-8-assembly_2.11-2.4.5.jar 一站式搭建sparkstreaming环境见该博客https://blog.csdn.net/wrwhahah/article/details/105716359
Spark安装包:spark-3.1.3-bin-without-hadoop.tgz
spark官方版本的driver-class-path不支持hdfs路径,只支持本地路径。本资源解决了这个问题,driver-class-path在cluster模式时可以支持hdfs路径,解决了cluster模式driver有大量jar依赖的问题。
内容概要:由于cdh6.3.2的spark版本为2.4.0,并且spark-sql被阉割,现基于cdh6.3.2,scala2.12.0,java1.8,maven3.6.3,,对spark-3.2.2源码进行编译 应用:该资源可用于cdh6.3.2集群配置spark客户端,用于spark-sql
2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5....
2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5....
spark-第一个spark程序worldCount,spark-第一个spark程序worldCount
Apache Spark源码走读之2 -- Job的提交与运行.pdf
mongodb-spark官方连接器,运行spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:1.1.0可以自动下载,国内网络不容易下载成功,解压后保存到~/.ivy2目录下即可。
Apache Spark版本3.1.3。Linux安装包。spark-3.1.3-bin-hadoop3.2.tgz
spark-3.2.0-bin-hadoop3-without-hive
2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5....
徐老师大数据培训Hadoop+HBase+ZooKeeper+Spark+Kafka+Scala+Ambari
spark-streaming-kafka-0-8_2.11-2.4.0.jar
spark-streaming-kafka-0-8-assembly_2.11-2.4.0.jar
1.Spark及其生态圈简介.pdf2.Spark编译与部署(上)--基础环境搭建.pdf2.Spark编译与部署(下)--Spark编译安装.pdf2.Spark编译与部署(中)--Hadoop编译安装.pdf3.Spark编程模型(上)--概念及SparkShell实战.pdf3....
Apache Spark 是一种用于大数据工作负载的分布式开源处理系统。它使用内存中缓存和优化的查询执行方式,可针对任何规模的数据进行快速分析查询。它提供使用 Java、Scala、Python 和 R 语言的开发 API,支持跨多个...
文件名: spark-3.4.1-bin-hadoop3.tgz 这是 Apache Spark 3.4.1 版本的二进制...Spark 是一种快速、通用的集群计算系统,用于大规模数据处理。这个文件包含了所有必要的组件,可以直接下载并在 Hadoop 3 环境中使用。