zoukankan      html  css  js  c++  java
  • spark的wordcount

    在开发环境下实现第一个程序wordcount

    1、下载和配置scala,注意不要下载2.13,在spark-core明确支持scala2.13前,使用2.12或者2.11比较好。

    https://www.scala-lang.org/download/

    2、windows环境下的scala配置,可选

     3、开发工具IDEA环境设置,全局环境添加scala的sdk,注意scala的源码要手动下载和添加

     4、在IDEA中新建MAVEN项目,添加scala框架支持

     5、在MAVEN工程添加spark-core依赖,注意根据自己需要选择对应的版本,版本不对很可能会出现运行期异常。

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

    6、wordcount代码

    在项目根目录(与src平级)中新建一个input目录,里面放入需要统计词频的文本文件

    package com.home.spark
    
    import org.apache.spark.rdd.RDD
    import org.apache.spark.{SparkConf, SparkContext}
    
    object WordCount {
      def main(args: Array[String]): Unit = {
        //获取环境
        val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkWordCount")
    
        //获取上下文
        val sc: SparkContext = new SparkContext(conf)
    
        //读取每一行
        val lines: RDD[String] = sc.textFile("input")
    
        //扁平化,将每行数据拆分成单个词(自定义业务逻辑)
        val words: RDD[String] = lines.flatMap(_.split(" "))
    
        //结构转换,对每个词获得初始词频
        val wordToOne: RDD[(String, Int)] = words.map((_,1))
    
        //词频计数
        val wordToSum: RDD[(String, Int)] = wordToOne.reduceByKey(_+_)
    
        //按词频数量降序排序
        val wordToSorted: RDD[(String, Int)] = wordToSum.sortBy(_._2,false)
    
        //数据输出
        val result: Array[(String, Int)] = wordToSorted.collect()
    
        //打印
        result.foreach(println)
    
        //关闭上下文
        sc.stop()
      }
    }
     
  • 相关阅读:
    基础语法;
    layabox里面的ui组件之RadioGroup
    github删除带有文件的文件夹
    【转】NHibernate:no persister for 异常
    MVC乱码可能的原因
    【转】局域网内访问VS2012 调试的IIS Express web服务器
    Hightchart y轴不允许显示小数
    WCF 断点不会命中
    Web Form 取消手机端自动转换
    Sharepoint的javascript客户端对象模型获取其他站点的list
  • 原文地址:https://www.cnblogs.com/asker009/p/11690442.html
Copyright © 2011-2022 走看看