Idea+Maven创建scala+spark的wordCount例子

1.选择Create New Project

Idea+Maven创建scala+spark的wordCount例子_第1张图片

2、填写GroupId,ArtifactId 

Idea+Maven创建scala+spark的wordCount例子_第2张图片

3、选择文件夹,自己填写Project Name

Idea+Maven创建scala+spark的wordCount例子_第3张图片

4、pom文件如下


  4.0.0
  com.scala.test
  scala-demo
  1.0-SNAPSHOT
  2008
  
    UTF-8
    2.4.4
    2.12.10
    2.7.0
  
  
    
      scala-tools.org
      Scala-Tools Maven2 Repository
      http://scala-tools.org/repo-releases
    
  

  
    
      scala-tools.org
      Scala-Tools Maven2 Repository
      http://scala-tools.org/repo-releases
    
  

  
    
      org.scala-lang
      scala-library
      ${scala.version}
    
    
      junit
      junit
      4.1
      test
    
    
      org.specs
      specs
      1.2.5
      test
    
    
    
      org.apache.spark
      spark-core_2.12
      2.4.4
    
  

  
    src/main/scala
    src/test/scala
    
      
        org.scala-tools
        maven-scala-plugin
        
          
            
              compile
              testCompile
            
          
        
        
          ${scala.version}
          
            -target:jvm-1.5
          
        
      
      
        org.apache.maven.plugins
        maven-eclipse-plugin
        
          true
          
            ch.epfl.lamp.sdt.core.scalabuilder
          
          
            ch.epfl.lamp.sdt.core.scalanature
          
          
            org.eclipse.jdt.launching.JRE_CONTAINER
            ch.epfl.lamp.sdt.launching.SCALA_CONTAINER
          
        
      
    
  
  
    
      
        org.scala-tools
        maven-scala-plugin
        
          ${scala.version}
        
      
    
  

 

 

5、在运行中报错,解决办法见另外一篇文章  IDEA+MAVEN搭建Scala错误

 

6、新建一个WorkCountDemo类

package com.scala.test
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object WordCountDemo {
  def main(args: Array[String]) {
    /**
     * SparkContext 的初始化需要一个SparkConf对象
     * SparkConf包含了Spark集群的配置的各种参数
     */
    val conf = new SparkConf().setAppName("WordCount").setMaster("local")
    val sc = new SparkContext(conf)
    val data=sc.textFile("D:\\scalaProjects\\scalademo\\hello.txt")//读取本地文件
    data.flatMap(_.split(" "))//下划线是占位符,flatMap是对行操作的方法,对读入的数据进行分割
      .map((_,1))//将每一项转换为key-value,数据是key,value是1
      .reduceByKey(_+_)//将具有相同key的项相加合并成一个
      .collect()//将分布式的RDD返回一个单机的scala array,在这个数组上运用scala的函数操作,并返回结果到驱动程序
      .foreach(println)//循环打印
  }
}

7、新建一个hello.txt文件,随便写啥,我的如下:

Idea+Maven创建scala+spark的wordCount例子_第4张图片

8、配置spark和scala版本,详见另外几篇,scala从版本2.13.1改成了2.12.10.

后面具体如下:

Idea+Maven创建scala+spark的wordCount例子_第5张图片

    

9、运行项目

右键WorkCountDemo类,选择Run,如果运行失败并出现java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.请确认下本地hadoop-x.x.x/bin目录下有没有winutils.exe这个文件,如果没有请到github上下载,

地址:https://github.com/srccodes/hadoop-common-2.2.0-bin

下载并解压成功后配置环境变量,增加用户变量HADOOP_HOME,值是下载的zip包解压的目录,然后在系统变量path里增加%HADOOP_HOME%\bin 即可。大功告成之后再次执行成功,结果如下:

Idea+Maven创建scala+spark的wordCount例子_第6张图片

你可能感兴趣的:(Scala)