IDEAはMavenを使用してSpark WordCountクラシックケースを作成
1673 ワード
IDEAを開き、
書き終わったら
export生成jarパケットインポートクラスタ
実行
/opt/module/spark-2.1.1/bin/spark-submit\
--master\
spark://hadoop02:7077,hadoop03:7077\
--class com.atguigu.wordcount.ScalaWorkCount\
/home/hadoops/spark-wordcount-1.0-SNAPSHOT.jar\
hdfs://s202:9000/wc hdfs://s202:9000/wcount20190105
com.atguigu.wordcount.ScalaWorkCount:クラス名
/home/hadoops/spark-wordcount-1.0-SNAPSHOT.jar:jarが存在するディレクトリ
package com.atguigu.wordcount
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object ScalaWorkCount {
def main(args: Array[String]): Unit = {
// spark ,
val conf = new SparkConf().setAppName("ScalaWordCount")
// spark
val sc = new SparkContext(conf)
// RDD( )
// sc.textFile(args(0)).flatMap(_.split(" ")).map((_,1)).reduceByKey(_ +_).sortBy(_._2,false).saveAsTextFile(args(1))
val line:RDD[String] = sc.textFile(args(0))
//
val words:RDD[String] = line.flatMap(_.split(" "))
//
val wordAndOne:RDD[(String,Int)] = words.map((_,1))
// key
val reduced:RDD[(String,Int)] = wordAndOne.reduceByKey(_ + _)
//
val sorted = reduced.sortBy(_._2,false)
// HDFS
sorted.saveAsTextFile(args(1))
sc.stop()
}
}
/*
* line.flatMap(_.split(" ")) flatMap(line => line.split(" "))
* words.map((_,1)) (word,1),word
* wordAndOne.reduceByKey(_ + _) reduceByKey((x, y) => x + y) key ,word
* sortBy(_._2,false)
*
*
*/
書き終わったら
export生成jarパケットインポートクラスタ
実行
/opt/module/spark-2.1.1/bin/spark-submit\
--master\
spark://hadoop02:7077,hadoop03:7077\
--class com.atguigu.wordcount.ScalaWorkCount\
/home/hadoops/spark-wordcount-1.0-SNAPSHOT.jar\
hdfs://s202:9000/wc hdfs://s202:9000/wcount20190105
com.atguigu.wordcount.ScalaWorkCount:クラス名
/home/hadoops/spark-wordcount-1.0-SNAPSHOT.jar:jarが存在するディレクトリ