首页 > 其他 > 详细

spark入门案例-------------WordCount

时间:2021-01-18 22:21:28      阅读:26      评论:0      收藏:0      [点我收藏+]

文件路径

技术分享图片

代码一

package com.xiao.spark.core.wc

import org.apache.spark.{SparkConf, SparkContext}

object Spark01_WoldCount {
  def main(args: Array[String]): Unit = {



      // 建立和spark框架的连接
      val conf = new SparkConf().setMaster("local").setAppName("WordCount");
      val sc = new SparkContext(conf);
      // 实现业务逻辑
      // 读取文件,按行读取
      val lines = sc.textFile("datas");
      // 对数据进行分词
      // 扁平化:将整体拆分成个体的操作
      val words = lines.flatMap(_.split(" "))
      // 将数据根据单词进行分组,便于统计
      // (hello,hello,hello)
      val wordGroup = words.groupBy(word => word)
      // 转换数据结构 word => (word, 1)
      val wordCount = wordGroup.map{
        case (word,list) =>{
          (word,list.size)
        }
      }
      // 展示数据
      wordCount.foreach(println)
      // 关闭连接
      sc.stop();
  }
}

运行结果:

技术分享图片

代码二

package com.xiao.spark.core.wc

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark02_WoldCount {
  def main(args: Array[String]): Unit = {



      // 建立和spark框架的连接
      val conf = new SparkConf().setMaster("local").setAppName("WordCount");
      val sc = new SparkContext(conf);
      // 实现业务逻辑
      // 读取文件,按行读取
      val lines = sc.textFile("datas");
      // 对数据进行分词
      // 扁平化:将整体拆分成个体的操作
      val words = lines.flatMap(_.split(" "))
      // 转换数据结构 word => (word, 1)
      val wordToOne: RDD[(String, Int)] = words.map {
        word =>
          (word, 1)
      }
      val wordCount: RDD[(String, Int)] = wordToOne.reduceByKey(_ + _)

      // 展示数据
      wordCount.foreach(println)
      // 关闭连接
      sc.stop();
  }
}

运行结果:

技术分享图片

spark入门案例-------------WordCount

原文:https://www.cnblogs.com/yangxiao-/p/14295326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!