Spark小实例(统计出日志中出现排行前10的IP地址)IDEA实现
2020-07-13 21:45
507 查看
首先创建好项目工程,如下图:
完善pom.xml文件,具体为:(依据自己的spark版本做修改)
<dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.8</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql-kafka-0-10_2.11</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> 32ce <version>2.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>provided</scope> </dependency> </dependencies> <build> <sourceDirectory>src/main/scala</sourceDirectory> <testSourceDirectory>src/test/scala</testSourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> <configuration> <args> <arg>-dependencyfile</arg> <arg>${project.build.directory}/.scala_dependencies</arg> </args> </configuration> </execution> </executions> </plugin> </plugins> </build>
准备数据:log.txt ,文本内容部分截图如下:(数据来源于网络,如有侵权,联系我删除)
文件下载地址:https://pan.baidu.com/s/1NE4pqqgJ-VvLZEW-6pQhxw 提取码:hq70
在src---mian---scala---cn.itcast下创建类:
代码具体为:
package cn.itcast import org.apache.commons.lang3.StringUtils import org.apache.spark.{SparkConf, SparkContext} object LogCountSort { def main(args: Array[String]): Unit = { //1、生成 val conf = new SparkConf().setMaster("local[*]").setAppName("log-count") val sc = new SparkContext(conf) //2、读取 val data = sc.textFile("data/log.txt") //3、取出IP, 赋予出现次数为1 val IPword = data.map(x => (x.split(" ")(0),1)) //4、清洗数据 val clearIP = IPword.filter(item => StringUtils.isNotEmpty(item._1)) //5、统计 val result = clearIP.reduceByKey(_+_) //6、排序 val sort = result.sortBy(_._2,ascending = false) //7. 取出结果, 打印结果 sort.take(10).foreach(println) } }
运行主程序得出结果:
相关文章推荐
- 基于Java实现Spark统计身高的实例
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- java文件操作代码片断实例实现统计文件中字母出现的个数功能
- 统计n个随机数(随机0~10),每出现一次就用*号在数字下面写一次*【c语言实现】
- 【oracle11g,10】redo日志文件1:实例故障和介质故障,日志组的操作,查看日志内容
- python3 实现统计单词表中每个字母的出现频率
- 通过统计nginx访问日志禁止恶意抓取数据的实现
- Python 爬虫实例(10)—— 四行代码实现刷 博客园 阅读数量
- 实现日、周、月排行统计 sql
- MyBatis代码实例系列-10:MyBatis通过PageHelper插件实现分页查询
- python实例:利用jieba库,分析统计金庸名著《倚天屠龙记》中人物名出现次数并排序...
- Java编程实现统计一个字符串中各个字符出现次数的方法
- IDEA+SPARK 本地伪分布式开发日志调测
- java实现页面访问量统计的实例,防刷新
- python脚本实现分析dns日志并对受访域名排行
- Java-10-50的随机数,统计出现的次数
- 任意一个英文的纯文本文件,统计其中的单词出现的个数(shell python 两种语言实现)
- C语言通过二叉树实现单词出现频率的统计
- java使用动态代理来实现AOP(日志记录)的实例代码