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开发

目录
相关文章
|
7月前
|
Java Maven 开发者
入职必会-开发环境搭建14-IDEA配置Maven
在 IDEA 中配置 Maven 可以帮助开发者更方便地管理项目依赖、构建项目和部署应用程序。要在 IDEA 中配置 Maven,可以按照以下步骤进行。
129 1
入职必会-开发环境搭建14-IDEA配置Maven
|
7月前
|
应用服务中间件
入职必会-开发环境搭建23-IDEA配置Tomcat
IDEA配置Tomcat分为两部分: 1. IDEA集成本地Tomcat 2. IDEA中使用Tomcat部署Web项目 在配置IntelliJ IDEA中的Tomcat时,首先需要打开IDEA,选择菜单中的Run -> Edit Configurations,在左侧菜单中找到+并点击,然后选择Tomcat Server下的Local(注意不要选择错了,下方还有个TomEE Server,不是选这个)。接下来,输入一个自定义的名字作为Tomcat的配置名称,点击Configure...配置Tomcat的安装路径。这样IDEA就配置好了Tomcat。
|
7月前
|
Java 开发工具
入职必会-开发环境搭建05-IDEA使用
本文介绍了IDEA的核心概念,项目创建,模块创建,包的创建,类的创建,代码编写也运行。
入职必会-开发环境搭建05-IDEA使用
|
7月前
|
Shell iOS开发 MacOS
入职必会-开发环境搭建04-IDEA激活
本方法是市面上最简单、方便的JetBrains全家桶激活方法,包含IDEA、PyCharm、CLion、DataGrip、GoLand、PhpStorm、WebStorm均可激活并且支持最新的2023版本。
141 0
入职必会-开发环境搭建04-IDEA激活
|
7月前
|
Oracle 关系型数据库 MySQL
入职必会-开发环境搭建17-IDEA连接数据库
IntelliJ IDEA集成了众多插件,方便开发者使用,使用IDEA自带的Database模块就可以很方便的配置、连接数据库,在 IntelliJ IDEA 中连接数据库,可以按照以下步骤进行操作。
260 0
|
7月前
|
IDE Java 开发工具
入职必会-开发环境搭建03-IDEA下载和安装
IntelliJ IDEA(简称IDEA),由JetBrains开发,是一款专为Java、Kotlin、Groovy等语言设计的集成开发环境(IDE)。它具备智能代码编辑、高效调试器、版本控制集成、丰富的插件生态、内置工具与高度定制性等特点,广泛应用于企业级软件、Web应用和移动应用开发。 完成上述步骤,即可开启IDEA的高效开发之旅。
|
8月前
|
IDE Java 编译器
07. 【Java教程】Java 集成开发环境 - IntelliJ IDEA
07. 【Java教程】Java 集成开发环境 - IntelliJ IDEA
123 1
|
9月前
|
IDE Go 开发工具
【GO基础】2. IDEA配置Go语言开发环境
【GO基础】2. IDEA配置Go语言开发环境
840 2
|
8月前
|
分布式计算 资源调度 Java
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
Scala+Spark+Hadoop+IDEA实现WordCount单词计数,上传并执行任务(简单实例-下)
92 0
|
8月前
|
分布式计算 Hadoop Scala
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
Scala +Spark+Hadoop+Zookeeper+IDEA实现WordCount单词计数(简单实例-上)
71 0