大数据全系列 教程
1869个小节阅读:467.2k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
package com.itbaizhan.core
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**析日志中各个网站的PV数
* 126.54.121.136 浙江 2030-07-13 1594648118250 4218643484448902621 www.jd.com Comment
* ->(www.jd.com,1)
* 126.54.121.136 浙江 2030-07-13 1594648118250 4218643484448902621 www.jd.com Buy
* ->(www.jd.com,1)
* 累加求和
* (www.jd.com,2)
*/
object CountPV {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
conf.setMaster("local[1]")
conf.setAppName("pv")
val sc = new SparkContext(conf)
//1.设置日志显示的级别
sc.setLogLevel("Error")
//2.读取hdfs文件系统的中的文件,并创建rdd对象
val lines: RDD[String] = sc.textFile("hdfs://mycluster/pvuv/input/pvuvdata")
//3.从每行日志中提取信息->(网址,1)
lines.map(line=>{(line.split("\t")(5),1)})
//4.将相同网址的数据分到一组,并做聚合加操作
.reduceByKey((v1,v2)=>(v1+v2))
//5.按照网址的pv数量从高到底排序
.sortBy(tp=>{tp._2},false)
//输出结果
//.foreach(println)
//将结果写到hdfs文件系统上
.saveAsTextFile("hdfs://mycluster/pvuv/pvoutput")
sc.stop()
}
}