IntelliJ IDEA 使用Maven创建Spark WordCount

Maven选择
Scala环境搭建主要是两种方式一种是传统的Maven还有一种是Sbt,不过使用Sbt一直都是慢爆了,找了很多解决方法还是很慢,所以Maven是个很好的替代品,从Java过来的应该都会

创建项目
1.使用Idea创建新的Maven项目,勾选Create from archetype 然后选择canel-archetype-scala,如下图所示

IntelliJ IDEA 使用Maven创建Spark WordCount_第1张图片

2.这个archetype会生成很多我们用不到的东西,所以删除Pom中不需要的东西,使用如下pom配置 ,然后再删除项目中自动生成的类



  4.0.0
  com.spark
  helloSpark
  jar
  1.0-SNAPSHOT
  A Camel Scala Route
 
   
      org.apache.spark
      spark-core_2.11
      2.0.0
   

 

 
    src/main/scala
   
     
        net.alchim31.maven
        scala-maven-plugin
        3.2.0
     

   

 



3.创建我们自己的helloSpark.scala

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

object helloSpark {
  def main(args: Array[String]): Unit = {
    //设置本机Spark配置
    val conf = new SparkConf().setAppName("wordCount").setMaster("local")
    //创建Spark上下
    val sc = new SparkContext(conf)
    //从文件中获取数据
    val input = sc.textFile("D:\\data\\1.txt")
    //分析并排序输出统计结果
    input.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((x, y) => x + y).sortBy(_._2,false).foreach(println _)
  }
}


计算过程分析 
- flatMap(line => line.split(” “)) 按安空格拆分文件中单词 
- map(word => (word, 1)) 将每个词映射成 (word,1),word是重复的 
- reduceByKey((x, y) => x + y) 将key相同的单词相加得到,word不重复 
- sortBy(_._2,false) 按词数量排序 
- foreach(println _) 输出结题

4.输出结果:

IntelliJ IDEA 使用Maven创建Spark WordCount_第2张图片

你可能感兴趣的:(大数据)