8. spark 2.3.2的WordCount

准备(以下是本人目前所知最方便的开始构建自己 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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容