spark第一个程序

package com.dt.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext

object WordCount {
   def main(args: Array[String] ){
     /**  
      * 第1步,创建Spark的配置对象SparkConf ,设置Spark程序的运行时的配置信息。
      * */
     val conf = new SparkConf() ;//创建SparkConf 对象
     conf.setAppName("Wow,my  first spark app"); // 设置应用程序的名称,在程序运行的监控面可以看到名称
     conf.setMaster("local");//此时,程序在本地运行,不需要安装Spark集群
     /**
      * 第2步:创建SparkContext 对象
      * Sparkcontext 是spark 程序所有功能的唯一入口,无论是采用Scala ,Java 、Python, R等都必须有一个Spark
      * Sparkcontext 核心作用:初始spark 应用程序 运行所有需要的核心组件,DAGScheduker,TaskScheduker
      * 同时还会负责Spark程序Master注册程序
      * Sparkcontext 是整个 应用中最为至关重要的一个对象
      * 
      * */
     val sc = new SparkContext(conf);//创建sparkContext对象,通过sparkConf实例来定制spark运行
     
     /**
      * 第3步,根据具体的数据来源(HDFS,HBase,local FS,DB,S3等)通过SparkContext来创建RDD
      * RDD的创建基本有三种方式:根据外部的数据来源(例如 HDFS),根据scala 集合、由其它的RDD操作
      * 数据会被RDD划分成为一系列的Partition,分配到每个Partition的数据属于一个Task的处理范畴
      * */
     //val lines :RDD[String] = sc.textFile("E://work//64bit//scala//spark-1.6.0-bin-hadoop2.6//README.md", 1);//读取本地文件,并设置一个Partition
     val lines = sc.textFile("G://work//64bit//scala//spark-1.6.0-bin-hadoop2.6//README.md", 1);//读取本地文件,并设置一个Partition
     
     /**
      * 第4步:对初始的RDD进行Transformation级别的处理,例如 map  filter 等高阶函数等的编程,来进行具体的数据计算
      * 4.1步 :将每一行的字符串拆分分成单个的单词 
      * */
     val words = lines.flatMap{line => line.split(" ")}; //对每一行的字符串进行拆分 并把所有的拆分结果通过flat 合并成一个
     
     
         /**
      * 第4步:对初始的RDD进行Transformation级别的处理,例如 map  filter 等高阶函数等的编程,来进行具体的数据计算
      * 4.2步 : 在单词拆分的基础上对每个单词实例计数为1,也是word=>(word,1)
      * */
     
     val pairs = words.map{word => (word,1)};
     
         /**
      * 第4步:对初始的RDD进行Transformation级别的处理,例如 map  filter 等高阶函数等的编程,来进行具体的数据计算
      * 4.3步 : 在每个单词实例计数为1基础之上统计每个单词在文件中出现的总次数
      * */
     
     val wordCounts = pairs.reduceByKey(_+_);//对相同的key,进行value的累计(包括Local和Reducer级别同时Reduce)
     
     wordCounts.foreach(wordNumberPair => println(wordNumberPair._1+":"+wordNumberPair._2));
     
     sc.stop();
   }
}

 

安装:

https://blog.youkuaiyun.com/nxw_tsp/article/details/78281533

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值