8. spark 2.3.2的WordCount
2018-12-27 本文已影响0人
百炼
准备(以下是本人目前所知最方便的开始构建自己
spark
代码的方法)
1.从github
网站sprak
工程源代码中 clone
一份到自己的机器上。
2.查看分支信息git branch -a
- 查看
tag
tag信息 -
checkout
最新稳定代码
git checkout remotes/origin/branch-2.3 v2.3.2
-
进入
example
文件夹下使用mvn compile package
打包编译。
将example
中的工程导入idea
或eclipse
中。(jar包已经是够全的了,而且各jar包的冲突也很好解决) -
使用工具写第一个单词计数程序
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)