Spark学习之第一个程序 WordCount

WordCount程序

求下列文件中使用空格分割之后,单词出现的个数

  • input.txt
java scala python hello world
java pyfysf upuptop wintp top
sfok sf sf 
sf java android sf pyfysf upuptop 
pyfysf upuptop java android spark
hello world world hello top scala spark
spark spark sql

创建maven项目

  • pom.xml


    
        SparkStudy
        top.wintp.sparkstudy
        1.0-SNAPSHOT
    
    4.0.0

    SparkCore
    
        
            org.apache.spark
            spark-core_2.11
            2.1.1
        
    
    
        WordCount
        
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.2
                
                    
                        
                            compile
                            testCompile
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-assembly-plugin
                3.0.0
                
                    
                        
                            WordCount(修改)
                        
                    
                    
                        jar-with-dependencies
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            
        
    




  • WordCount.scala
package top.wintp.sparkstudy.sparkcore

import org.apache.spark.{SparkConf, SparkContext}

/**
  * description:
  * 

* author: upuptop *

* qq: 337081267 *

* CSDN: http://blog.csdn.net/pyfysf *

* cnblogs: http://www.cnblogs.com/upuptop *

* blog: http://wintp.top *

* email: [email protected] *

* time: 2019/07/2019/7/1 *

*/ object WordCount { def main(args: Array[String]): Unit = { // 创建SparkConf // setMaster local/local[n]/local[*] 都是本地运行 可以设置远程服务器的Master的地址URL val conf = new SparkConf().setMaster("local[*]").setAppName("WordCount") // 创建SparkContext val sc = new SparkContext(conf) // 根据外部文件创建RDD val line = sc.textFile("E:/input/input.txt") // flatmap压平操作 val words = line.flatMap(_.split(" ")) // map 组装键值对 val k2v = words.map((_, 1)) // 计算结果 val result = k2v.reduceByKey(_ + _) // 保存结果数据到文件中去 result.saveAsTextFile("E:/output/" + System.currentTimeMillis()) // 关闭Context sc.stop() } }

  • 输出结果
    Spark学习之第一个程序 WordCount_第1张图片

按照如上配置,不会出现以下问题,如不幸出现下面描述问题,请将scal-SDK放到所有依赖的最后


Exception in thread "main"
 java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)
 Lscala/collection/mutable/ArrayOps;

Spark学习之第一个程序 WordCount_第2张图片

你可能感兴趣的:(Spark学习之第一个程序 WordCount)