bigdata

8. spark 2.3.2的WordCount

2018-12-27  本文已影响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)

上一篇下一篇

猜你喜欢

热点阅读