PV UV TOPN
时间:2020-04-25
本文章向大家介绍PV UV TOPN,主要包括PV UV TOPN使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 package com.day07 2 3 import org.apache.spark.rdd.RDD 4 import org.apache.spark.{SparkConf, SparkContext} 5 6 object PV { 7 def main(args: Array[String]): Unit = { 8 //todo:创建sparkconf,设置appName 9 //todo:setMaster("local[2]")在本地模拟spark运行 这里的数字表示 使用2个线程 10 val sparkConf: SparkConf = new SparkConf().setAppName("PV").setMaster("local[2]") 11 //todo:创建SparkContext 12 val sc: SparkContext = new SparkContext(sparkConf) 13 //todo:读取数据 14 val file: RDD[String] = sc.textFile("D:\\IDEA_Maven\\day07\\src\\main\\resources\\access.log") 15 //todo:将一行数据作为输入,输出("pv",1) 16 val pvAndOne: RDD[(String, Int)] = file.map(x => ("pv", 1)) 17 //todo:聚合输出 18 val totalPV: RDD[(String, Int)] = pvAndOne.reduceByKey(_ + _) 19 totalPV.foreach(println) 20 sc.stop() 21 } 22 23 }
1 package com.day07 2 3 import org.apache.spark.rdd.RDD 4 import org.apache.spark.{SparkConf, SparkContext} 5 6 object UV { 7 def main(args: Array[String]): Unit = { 8 //todo:构建SparkConf和 SparkContext 9 val sparkConf: SparkConf = new SparkConf().setAppName("UV").setMaster("local[2]") 10 val sc: SparkContext = new SparkContext(sparkConf) 11 //todo:读取数据 12 val file: RDD[String] = sc.textFile("D:\\IDEA_Maven\\day07\\src\\main\\resources\\access.log") 13 //todo:对每一行分隔,获取IP地址 14 val ips: RDD[(String)] = file.map(_.split(" ")).map(x => x(0)) 15 //todo:对ip地址进行去重,最后输出格式 ("UV",1) 16 val uvAndOne: RDD[(String, Int)] = ips.distinct().map(x => ("UV", 1)) 17 //todo:聚合输出 18 val totalUV: RDD[(String, Int)] = uvAndOne.reduceByKey(_ + _) 19 totalUV.foreach(println) 20 //todo:数据结果保存 21 totalUV.saveAsTextFile("C:\\Users\\Dell\\Desktop\\在线配置\\out") 22 sc.stop() 23 } 24 }
1 package com.day07 2 3 import org.apache.spark.rdd.RDD 4 import org.apache.spark.{SparkConf, SparkContext} 5 6 object TopN { 7 def main(args: Array[String]): Unit = { 8 val sparkConf: SparkConf = new SparkConf().setAppName("TopN").setMaster("local[2]") 9 val sc: SparkContext = new SparkContext(sparkConf) 10 sc.setLogLevel("WARN") 11 //读取数据 12 val file: RDD[String] = sc.textFile("D:\\IDEA_Maven\\day07\\src\\main\\resources\\access.log") 13 //将一行数据作为输入,输出(来源URL,1) 14 val refUrlAndOne: RDD[(String, Int)] = file.map(_.split(" ")).filter(_.length > 10).map(x => (x(10), 1)) 15 //聚合 排序-->降序 16 val result: RDD[(String, Int)] = refUrlAndOne.reduceByKey(_ + _).sortBy(_._2, false) 17 //通过take取topN,这里是取前5名 18 val finalResult: Array[(String, Int)] = result.take(5) 19 println(finalResult.toBuffer) 20 21 sc.stop() 22 23 } 24 25 }
原文地址:https://www.cnblogs.com/xjqi/p/12774558.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go 每日一库之 cli
- Go 每日一库之 cron
- Go 每日一库之 mapstructure
- Go 每日一库之 jobrunner
- 在本地运行 fyne 官网
- Python-科学计算-pandas-12-df单列计算
- JDK15就要来了,你却还不知道JDK8的新特性!
- 八佰:用Python看知乎 vs 豆瓣的战斗
- 学习Python你必须了解的lenna小姐姐
- 10行python代码制作笑死人不偿命的倒放gif
- “Hello Node.js” 这一次是你没见过的写法
- 作为DBA,你不得不掌握的压测工具
- Mac之vim普通命令使用
- selenium库的基本使用
- 高效大数据开发之 bitmap 思想的应用