1. Scala代码
在scala目录下创建包com.sanqian.scala
再创建一个Scala object:WordCountScala
package com.sanqian.scala
import org.apache.spark.{SparkConf, SparkContext}
object WorldCountScala {
def main(args: Array[String]): Unit = {
//第一步创建SparkContext
val conf = new SparkConf()
conf.setAppName("WorldCountScala")
// .setMaster("local")
val sc = new SparkContext(conf)
//第二步:加载数据
var path = "D:\\data\\wordcount.txt"
if (args.length== 1){
path = args(0)
}
val linesRDD = sc.textFile(path)
// 第三步:对数据进行切割,把一行数据切分成一个一个的单词
val wordsRDD = linesRDD.flatMap(_.split(" "))
// 第四步: 迭代words,将每个word转化为(word, 1)这种形式
val pairsRDD = wordsRDD.map((_, 1))
//第五步:根据key(其实就是word)进行分组聚合统计
val wordCountRDD = pairsRDD.reduceByKey(_ + _)
//第六步: 将结果打印到控制台
wordCountRDD.foreach(wordCount => println(wordCount._1 + "---" + wordCount._2))
//第七步:停止SparkContext
sc.stop()
}
}
2. Java代码
在scala目录下创建包com.sanqian.java
再创建一个Java类:WordCountJava
package com.sanqian.java;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.FlatMapFunction;
import org.apache.spark.api.java.function.Function2;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import scala.Tuple2;
import java.util.Arrays;
imp

文章展示了如何使用Scala和Java编写ApacheSpark的WordCount程序,包括数据加载、单词拆分、聚合统计等步骤,并通过Maven进行项目打包,使用shell脚本提交Spark作业。
最低0.47元/天 解锁文章
2658

被折叠的 条评论
为什么被折叠?



