scalaを用いてローカルテストのSpark WordCountプログラムを開発する
1999 ワード
package com.yh.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WordCount {
def main(args: Array[String]): Unit = {
/**
* : Spark SparkConf, Spark ,
* setMaster Spark Master URL,
* local, Spark 。
*/
val conf = new SparkConf // SparkConf
conf.setAppName("wordCount") // ,
conf.setMaster("local") // , , Spark
/**
* : SparkContext
* SparkContext Spark , scala、java、Python,R
* SparkContext。SparkContext : Spark ,
* DAGScheduler,TaskScheduler、SchedulerBackend Spark Master 。
* SparkContext Spark 。
*/
val sc = new SparkContext(conf)
/**
* : (HDFS、HBase、Local FS、DB、S3 ) SparkContext RDD。
* RDD : (HDFS)、 Scala 、 RDD 。 RDD
* Partitions, Partition Task
*/
val lines = sc.textFile("D://data//1.txt", 1)//
/**
* : RDD Transformation , map、filter , 。
*/
/**
* 4.1、
*/
val words = lines.flatMap { line => line.split(" ") } // flat
/**
* 4.2、 1, word => (word,1)
*/
val pairs = words.map { word => (word, 1) }
/**
* 4.3、 1
*/
val wordCounts = pairs.reduceByKey(_+_) // key, value
wordCounts.foreach(map => println(map._1 +":"+ map._2))
sc.stop()
}
}