纯手写一个spark应用程序:WordCount(Scala 代码实现)

在maven项目中的pom.xml配置文件中添加spark相应的组件

<!-- 会自动加载所有相关的库 -->
  <dependencies>
   <dependency>
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-mllib_2.11</artifactId>
     <version>2.0.1</version>
    </dependency>
import org.apache.spark.{SparkConf,SparkContext}
object WordCount {
  def main(args:Array[String]){
    /* 
     * 第一步,创建spark的配置信息对象sparkconf,设置spark程序运行时的配置信息
     * setAppName用来设置应用程序的名称,在程序运行的监控界面上可以看到该应用程序的名称
     * setMaster,设置程序运行在本地还是运行在集群中,在本地可以使用local参数,或者local[k]参数
     * 如果运行在集群中,以standalone模式运行呢,需要使用spark://HOST:PORT
     * */
   val conf = new SparkConf();
   conf.setAppName("wordcount")
   conf.setMaster("local[2]");

   /* 第二步创建sc对象,sc是spark程序所有功能的唯一入口
    * sc核心作用:初始化spark应用程序的所有的组件,包括DAGSchedule TaskSchedule ScheduleBackend
    * 还会负责spark程序向master注册程序
    * */
   val sc = new SparkContext(conf);

   /* 第三步,根据具体的数据来源等信息,通过sparkContext来创建rdd
    * rdd的创建方式,外部来源,通过scala的集合然后产生rdd,通过rdd产生rdd
    * 
    * */
   val lines =sc.textFile("D:/test")

   /*第四步 用一些函数来进行计算*/
   val words = lines.flatMap(_.split(",")).flatMap(_.split(" ")).filter(word=>word!=" ")
   val pairs = words.map(word=>(word,1))
   val wordscount=pairs.reduceByKey(_+_)
   val result=wordscount.collect()
   result.foreach(println)
   sc.stop()
  }
}

我们的数据格式:
1,湖南有限公司1,1,走向 肉鸡 嗯嗯 哈哈
2,湖南有限公司2,1,走向 肉鸡 嗯嗯 哈哈
3,湖南有限公司3,1,走向 肉鸡 嗯嗯 哈哈
输出:
这里写图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值