IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> spark词频统计 -> 正文阅读

[大数据]spark词频统计

spark词频统计


  1. idea配置spark单机环境请参考其他教程,这里我使用的版本信息如下

    • JDK:1.8.0_281
    • Scala:2.12.8
    • Spark:3.1.1
    • 开发环境:IDEA 2020.2.3
  2. idea中新建maven项目,建议jdk版本1.8及以上,单击下一步

    在这里插入图片描述

  3. 自定义项目名称,这里为experiment1,下拉选项中groupid和version也可自定义,这里分别改为com.experiment和1.0.0,单击完成

    在这里插入图片描述

  4. 右键单击项目experiment目录选择Add Framework Support…,勾选上scala后ok。

    在这里插入图片描述

    在这里插入图片描述

  5. 打开项目experiment1下的pom.xml文件,</project>标签前追加下列代码,这里的spark-core_2.123.0.0是基于上述环境版本而言,如环境版本与上述不一致,可能配置失败,可根据自己的版本进行调整。(如下载速度较慢,可参考相关教程更改maven源)

    <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.12</artifactId>
                <version>3.0.0</version>
            </dependency>
    </dependencies>
    

    在这里插入图片描述

    追加代码后记得单击右上角按钮更新依赖,或使用快捷键ctrl+shift+O,下载完成后关闭该文件。

  6. experiment项目目录下新建目录用于存放数据文件,这里目录名为file,文件名words,txt,与代码中保持一致,修改记得一并修改。

    在这里插入图片描述

  7. experiment->src->main->java目录下右键单击新建package,这里命名为spark

    在这里插入图片描述

    spark包下再新建package这里命名为task1

    在这里插入图片描述

    task1上右键单击新建Scala Class

    在这里插入图片描述

    选择object,这里命名为WordCount

    在这里插入图片描述

  8. 复制下列代码到WordCount文件中覆盖内容,如包名或文件路径不一致可自行修改

    package spark.task1
    // 用于构造SparkContext实例
    import org.apache.spark.{SparkConf, SparkContext}
    object WordCount {
      def main(args: Array[String]): Unit = {
        // 构造SparkConf实例用于创建SparkContext对象
        val sparkConf = new SparkConf().setMaster("local[*]").setAppName("task1")
        // 构造sparkContext对象
        val sc = new SparkContext(sparkConf)
        // 从文件中按行读取源数据为RDD,并指定分区数为8
        val info = sc.textFile("file/words.txt", 8)
        // 对源数据进行一系列的转换(transform)和行动(action)操作,得到结果,具体步骤如下
        // .flatMap(_.split(" "))使用空格对源数据进行分割,并将其扁平化
        // .map((_,1))将分割后的单词构造为键值对(word,1)的形式
        // .reduceByKey(_+_)对键值对进行聚合操作,指定聚合行为为值相加
        // .sortBy(_._2, ascending=false)按值对每个键值对降序排列
        val rst = info.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2, ascending = false)
        // 输出显示结果
        rst.foreach(println)
        sc.stop()
      }
    }
    

    编辑区域任意位置单击右键,选择run "WordCount"运行代码,得到结果

    在这里插入图片描述

  9. 发现输出结果中存在大量日志信息,影响结果展示,experiment->src->main->resources目录下新建文件,命名为log4j.properties

    在这里插入图片描述

    覆盖复制下列信息,保存,关闭

    log4j.rootCategory=ERROR, console
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.err
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd/HH:mm:ss} %p %c{1}: %m%n
    log4j.logger.org.apache.spark.repl.Main=ERROR
    log4j.logger.org.spark_project.jetty=ERROR
    log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
    log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=ERROR
    log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=ERROR
    log4j.logger.org.apache.parquet=ERROR
    log4j.logger.parquet=ERROR
    log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
    log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
    
  10. 重新运行WordCount,得到纯输出结果。

    在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:09:56  更:2021-08-29 09:27:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:06:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码