spark_wordcount

本文通过使用Spark的Scala API实现WordCount程序,展示了Spark相较于Hadoop MapReduce的简洁性和高效性。文章详细介绍了如何配置Spark环境,读取文件,进行数据处理和单词统计,最终将结果排序并保存到HDFS上。

spark是基于scala写的,虽然spark有java API,或者python API,但是scala算是正统吧。

而且scala的语法书写起来十分的爽,不想java那样笨重,python不太了解,不给予评价。

接下来看下spark版的wordcount,相对与hadoop的mapreduce要简单许多。

/**
  * Spark简单入门 worldCount
  */
object SparkWC {
  def main(args: Array[String]): Unit = {
    // 创建spark的配置对象
    // setAppName()设置程序名字
    // setMaster() 设置为本地运行
    // local用一个线程模拟集群
    // local[2]用两个线程模拟集群
    // local[*]用所有的空闲线程模拟集群,,spark://spark101:7077
    val sparkConf = new SparkConf().setAppName("SparkWC").setMaster("local")
    // 根据conf创建SparkContext上下文,也就是程序执行入口
    val sc = new SparkContext(sparkConf)
    // 读文件
   // val files: RDD[String] = sc.textFile("D:\\Demo\\hadoop\\input\\word.txt")
    val files: RDD[String] = sc.textFile("D:\\Demo\\hadoop\\input\\word.txt")
    // 进行处理数据,进行单词统计,首先我们需要调用 flatMap算子,进行切分压平
    val lines: RDD[String] = files.flatMap(_.split(" "))
    // 调用map算子,进行单词的统计
    val worlds: RDD[(String, Int)] = lines.map((_,1))
    // 调用reduceByKey,按key对value聚合
    val re: RDD[(String, Int)] = worlds.reduceByKey(_ + _)
    // 将数据进行降序排序
    val sortWC: RDD[(String, Int)] = re.sortBy(_._2,false)
    // 打印数据
    println(sortWC.collect().toBuffer)
    // 数据存储到hdfs上
    sortWC.saveAsTextFile("D:\\Demo\\hadoop\\ouput\\out26")

  }
}

从代码中,可以看到spark的scala API的强大,希望对大家有用

转载于:https://www.cnblogs.com/dongxiucai/p/9911140.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值