Intellij idea配置Spark开发环境,统计哈姆雷特词频(2)

简介: idea 新建maven 项目输入maven坐标maven 坐标编辑maven文件Spark 体系中间层Spark,即核心模块Spark Core,必须在maven中引用。

idea 新建maven 项目

  1. 输入maven坐标


    maven 坐标
  2. 编辑maven文件


    Spark 体系

中间层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文件。


idea Externel Libraries

注: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);
        });
  1. 将line分割展成词向量,词向量连接,flatmap返回Rdd<String>
  2. 特殊字符处理,返回 Rdd<String>
  3. 遍历总数计数、停用词计数,过滤停止词, 返回Rdd<String>
  4. Reduce Rdd<String,1>,返回Rdd<String,total>
  5. 排序 SortByKey,返回 Rdd<String,total>

后期有更多案例介绍Java 8 lambda风格的RDD开发

目录
相关文章
|
2月前
|
Java 程序员 API
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
58 1
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
28天前
|
Java Maven
Maven【5】在IDEA环境中配置和使用Maven
Maven【5】在IDEA环境中配置和使用Maven
59 1
|
2月前
|
Java Maven
【Maven】下载配置maven以及IDEA配置maven详情
【Maven】下载配置maven以及IDEA配置maven详情
122 0
|
20天前
|
数据建模 Go vr&ar
idea配置go依赖下载
idea配置go依赖下载
16 0
|
1月前
|
Java 编译器 测试技术
滚雪球学Java(04):JDK、IntelliJ IDEA的安装和环境变量配置
【2月更文挑战第11天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
46 1
|
1月前
|
IDE Java Maven
IntelliJ IDEA配置开发环境
IntelliJ IDEA配置开发环境
|
2月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
93 2
|
3月前
|
Java Maven
IDEA Maven SpringBoot配置POM文件
IDEA Maven SpringBoot配置POM文件
34 0
|
3月前
|
IDE Java 开发工具
【开发工具】Windows环境下 IDEA 开发工具安装&配置(无错完整)
【1月更文挑战第20天】【开发工具】Windows环境下 IDEA 开发工具安装&配置(无错完整)