Intellij idea配置Spark开发环境,统计哈姆雷特词频(2)
idea 新建maven 项目
-
输入maven坐标
-
编辑maven文件
中间层Spark,即核心模块Spark Core,必须在maven中引用。
编译Spark还要声明java8编译工具。
<properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build>
idea自动加载引用,在窗口左侧Project导航栏-->External Libraries中看到引用org.apache.spark中spark-core_2.11-2.1.0.jar文件。
注:Spark Streaming是流式计算框架、SparkSQL数据库工具、Mlib机器学习框架、GraphX图计算工具。
Java 8 lambda函数风格的wordCount
//定义单词总数累加器、和停用词累加器 Accumulator countTotal = jsc.accumulator(0); Accumulator stopTotal = jsc.accumulator(0); // 文件初始化RDD JavaRDD<String> stopword = jsc.textFile("data/text/stopword.txt"); JavaRDD<String> rdd = jsc.textFile("data/text/Hamlet.txt"); // RDD 转换为List List<String> stopWordList = stopword.collect(); // Broadcast 广播变量,task共享executor的变量 Broadcast<List<String>> broadcastedStopWordSet = jsc.broadcast(stopWordList); rdd.filter(l->l.length()>0) .flatMap(l-> Arrays.asList(l.trim().split(" ")).iterator()) // 将line分割展成词向量,词向量在连接,返回Rdd<String> .map(v->v.replaceAll("['.,:;?!-]", "").toLowerCase()) // 特殊字符处理, Rdd<String> .filter(v->{ boolean isStop = false; countTotal.add(1); if(broadcastedStopWordSet.value().contains(v)){ stopTotal.add(1); isStop = true; } return !isStop; }) //遍历总数计数、停用词计数,过滤停止词, Rdd<String> .mapToPair(v-> new Tuple2<>(v,1)) .reduceByKey((v1,v2)->v1+v2) //统计个数 .mapToPair(p-> new Tuple2<>(p._2,p._1)) .sortByKey(false) //排序 .take(10).forEach(e->{ System.out.println(e._2+":"+e._1); });
- 将line分割展成词向量,词向量连接,flatmap返回Rdd<String>
- 特殊字符处理,返回 Rdd<String>
- 遍历总数计数、停用词计数,过滤停止词, 返回Rdd<String>
- Reduce Rdd<String,1>,返回Rdd<String,total>
- 排序 SortByKey,返回 Rdd<String,total>
后期有更多案例介绍Java 8 lambda风格的RDD开发
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CentOS 7.x 安装JDK和Hadoop
下载tar包 解压tar包 设置环境变量 export JAVA_HOME=/home/fantj/jdk export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/home/fantj/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$PATH:$HADOOP_HOME/sbin 查看java版本 [root@localhost ~]# java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) 查看hadoop版本 [root@localhost ~]# hadoop version Hadoop 2.7.0 Subversion Unknown -r Unknown Compiled by root on 2015-05-21T03:49Z Co...
- 下一篇
2018年8月中级前端开发推荐书籍
这些书籍适合中级前端开发者阅读,初级前端开发人员买来除了自我安慰和垫高显示器以外可能没什么用处。 说是推荐书单,实际上是笔者自己的读书计划。欢迎你在阅读中与我交流。 1.《企业IT架构转型之道 阿里巴巴中台战略思想与架构实践》 推荐理由:曾经有一个前端大神说过,如果你想成为前端架构师,首先你得忘记自己是个前端。 2. 《Redis实战》 推荐理由: Redis是服务端的缓存技术。缓存可以说只在性能优化阶段才有明显的作用,项目初期往往用不到。大多数使用node.js进行后端开发的前端开发者实际上更多地是做中间层或者直接做后端服务,缓存技术对自己来说是技术盲区,私以为对许多开发者来说也是盲区。 3. 《大话数据结构》 推荐理由:技术决定你能走多快,数据结构和算法决定你能走多远。 4. 《算法图解》 推荐理由:技术决定你能走多快,数据结构和算法决定你能走多远。 5. 《CSS世界》 推荐理由:CSS和javascript一样,都是很容易上手,却很难精通的。CSS几乎可以说是我们全团队的软肋,包括前端人员在内,敢说自己精通js的大有人在,但敢说自己精通CSS的寥寥无几。这本是前端知名博主张鑫旭...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS关闭SELinux安全模块
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度