1 ,spark wordCount,idea 中的 maven,scala 项目

1 ,在 idea 中建项目 : maven 项目,scala 代码

  1. 建 mevan 项目 ( 这一步不会做的同学,请自行补习 maven 知识,这里不啰嗦 )
  2. 构建 scala 源码目录
    1 ,在 main 下建目录 ( directory ) : scala
    2 ,右键 scala - make directory as - sources root
  3. pom.xml


    4.0.0

    com.heima.sparkTest
    sparkTest
    1.0-SNAPSHOT

    
    
        UTF-8
        1.8
        1.8
    

    
        
        
            org.apache.spark
            spark-core_2.11
            2.3.1
        
        
        
            org.apache.spark
            spark-sql_2.11
            2.3.1
        
        
        
            org.apache.spark
            spark-hive_2.11
            2.3.1
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
        
            org.apache.spark
            spark-streaming_2.11
            2.3.1
            
        
        
        
            org.apache.spark
            spark-streaming-kafka-0-10_2.11
            2.3.1
        
        
        
            org.apache.kafka
            kafka-clients
            0.10.0.0
        
        
        
            redis.clients
            jedis
            2.6.1
        

        
        
            org.scala-lang
            scala-library
            2.11.7
        
        
            org.scala-lang
            scala-compiler
            2.11.7
        
        
            org.scala-lang
            scala-reflect
            2.11.7
        
        
            log4j
            log4j
            1.2.12
        
        
            com.google.collections
            google-collections
            1.0
        
    

    
        

            
            
                org.scala-tools
                maven-scala-plugin
                2.15.2
                
                    
                        
                            compile
                            testCompile
                        
                    
                
            

            
            
                maven-assembly-plugin
                2.4
                
                    
                    
                    
                        jar-with-dependencies
                    
                    
                        
                            com.bjsxt.scalaspark.sql.windows.OverFunctionOnHive
                        
                    
                
                
                    
                        make-assembly
                        package
                        
                            assembly
                        
                    
                
            


            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            


            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            

        
    

2 ,造数据 :

aa bb cc dd
aa bb cc
aa bb

1 ,spark wordCount,idea 中的 maven,scala 项目_第1张图片

3 ,wc 代码 :

package day01.demo01.wc

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

object Wc {
    def main(args: Array[String]): Unit = {
        //  配置对象
        var conf = new SparkConf()
        //  任务名字
        conf.setAppName("wc")
        //  运行模式
        conf.setMaster("local")
        
        //  spark 上下文 :是通往 spark 集群的唯一通道
        var sc = new SparkContext(conf)
        //  RDD 就是一行一行的数据的集合
        val lines: RDD[String] = sc.textFile("./data/words")
        //  打散,成为一个个的单词
        val words: RDD[String] = lines.flatMap(e => e.split(" "))
        //  变成二元组,每个单词标记为 1
        val wordsAndNums: RDD[(String, Int)] = words.map(e=>(e,1))
        //  计数 ( a :前面的所有 v 的和 ;b:当前 v ; a+b :结果,将前一个结果加上当前值,就是得到的结果  )
        val wordsAndConuts: RDD[(String, Int)] = wordsAndNums.reduceByKey((a:Int, b:Int) => a+b)
        
        //  输出结果
        wordsAndConuts.foreach(println)
        
        //  关闭资源
        sc.stop()
    }
}

4 ,wc 代码简化 :

package day01.demo01.wc

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

object Wc02 {
    def main(args: Array[String]): Unit = {
        //  配置对象
        var conf = new SparkConf()
        //  任务名字
        conf.setAppName("wc")
        //  运行模式
        conf.setMaster("local")
        //  spark 上下文 :是通往 spark 集群的唯一通道
        var sc = new SparkContext(conf)
        
        //  代码逻辑 ( 读文件,切分,单词计数 1,统计单词数量 )
        sc.textFile("./data/words").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)
        sc.stop()
    }
}

你可能感兴趣的:(1 ,spark wordCount,idea 中的 maven,scala 项目)