美文网首页bigdata
8. spark 2.3.2的WordCount

8. spark 2.3.2的WordCount

作者: 百炼 | 来源:发表于2018-12-27 21:58 被阅读0次

    准备(以下是本人目前所知最方便的开始构建自己 spark代码的方法)

    1.从github网站sprak工程源代码中 clone一份到自己的机器上。
    2.查看分支信息git branch -a

    spark源码分支
    1. 查看tag
      tag信息
    2. checkout最新稳定代码
    git checkout remotes/origin/branch-2.3 v2.3.2
    
    1. 进入example文件夹下使用mvn compile package打包编译。
      example中的工程导入ideaeclipse中。(jar包已经是够全的了,而且各jar包的冲突也很好解决)

    2. 使用工具写第一个单词计数程序

    package org.learnspark.scala
    import org.apache.spark.{SparkConf, SparkContext}
    
    object WordCount {
      def main(args: Array[String]) {
        if (args.length < 1) {
          System.err.println("Usage: HdfsWordCount <directory>")
          System.exit(1)
        }
    
        val sparkConf = new SparkConf().setAppName("HdfsWordCount")
        val sc = new SparkContext(sparkConf)
    
        val line = sc.textFile(args(0))
        line.flatMap(_.split(" "))
          .map((_, 1))
          .reduceByKey(_ + _)
          .sortBy(_._2, false)
          .saveAsTextFile(args(1))
        sc.stop()
      }
    }
    

    附上一个运行spark的脚本

    export JAVA_HOME=/home/hadoop/opt/jdk1.8.0_172
    export CODE_HOME=/mnt/hgfs/swapfonder
    export APP_JAR=$CODE_HOME/target-spark/spark-examples_2.11-2.3.2.jar
    INPUT=$CODE_HOME/spark/input1/HelloWorld.scala
    OUTPUT=$CODE_HOME/spark/output1
    PROG=org.learnspark.scala.WordCount
    #Delete output dir
    echo "============= DELETE OUTPUT dir =============="
    rm -rf $OUTPUT
    $SPARK_HOME/bin/spark-submit --class $PROG $APP_JAR $COUNT $INPUT $OUTPUT
    

    HelloWorld.scala

    Hello World !
    Hello Spark !
    Spark English !

    Result

    (Hello,2)
    (English,1)
    (World,1)
    (Spark,2)
    (!,3)

    相关文章

      网友评论

        本文标题:8. spark 2.3.2的WordCount

        本文链接:https://www.haomeiwen.com/subject/bmzdlqtx.html