spark01, scala的wordcount的过程是怎样的

  介绍

今天就跟大家聊聊有关spark01, scala的wordcount的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

第一版:原始版本

 def 主要(args:数组[String]):, Unit =, {
  ,,,val  conf =, new  SparkConf ()
  ,,,conf.setAppName (“workcount")
  ,,,conf.setMaster (“local")
  
  ,,,//SparkContext 是通往spark 集群的唯一通道
  ,,,val  sc =, new  SparkContext(配置)
  
  ,,,/* *,加载配置当前项目下词文件的内容
  ,,,,,*,内容为:
  ,,,,,,,hello  java
  ,,,,,,,hello 火花
  ,,,,,,,hello  hdfs
  ,,,,,,,hello ,先生
  ,,,,,,,hello  java
  ,,,,,,,hello 火花
  ,,,,*/,,,val  lines =, sc.textFile (“。/words")
  ,,,//线为每一行,每一行经过“,“空格切分成RRD类型
  ,,,val 列表:,抽样(字符串),=,lines.flatMap (line =祝辞,{line.split (“,“)})
  ,,,//单词转换成二元元组
  ,,,val 价值观:,抽样[(字符串,Int)],=, lists.map(词=祝辞{new  Tuple2(单词,1)})
  ,,,/* *
  ,,,,,*,reduceByKey 函数是先把相同的单词(关键)进行分组,如
  ,,,,,hello  1
  ,,,,,hello  1
  ,,,,,hello  1
  ,,,,,hello  1
  ,,,,,hello  1
  ,,,,,hello  1
  
  ,,,,,java  1
  ,,,,,java  1
  
  ,,,,,spark  1
  ,,,,,spark  1
  
  ,,,,,hdfs  1
  ,,,,,mr  1
  
  ,,,,,(v1: Int,, v2: Int)=祝辞{v1 + v2},表示经过分组后的单词元组(sr, Int)相同的关键,值进行累加,返回v1 + v2 就是累加的值
  ,,,,*/,,,val 结果:,抽样[(字符串,Int)],=, values.reduceByKey ((v1: Int,, v2: Int)=祝辞{v1 + v2})
  ,,,//遍历结果
  ,,,result.foreach println ()
  ,,,//关闭
  ,,,sc.stop ()
  以前,,} 

第二版:

<>之前,def 主要(args:数组[String]):, Unit =, {   ,,,val  conf =, new  SparkConf ()   ,,,conf.setAppName (“workcount")   ,,,conf.setMaster (“local")      ,,,val  sc =, new  SparkContext(配置)   ,,,val  result =, sc.textFile (“。/words") .flatMap(线=祝辞line.split (“,“)) . map(世界=祝辞new  Tuple2(世界,1).reduceByKey ((v1: Int,, v2: Int)=祝辞{v1 + v2})      ,,,result.foreach println ()   ,,,sc.stop ()      以前,,}

第三版本:最简版本

<>之前,,def 主要(args:数组[String]):, Unit =, {   ,,,val  conf =, new  SparkConf ()   ,,,conf.setAppName (“workcount")   ,,,conf.setMaster (“local")      ,,,val  sc =, new  SparkContext(配置)   ,,,val  result =, sc.textFile (“。/words") .flatMap (_.split (“,“)) . map ((_), 1) .reduceByKey (_ + _)      ,,,result.foreach println ()   ,,,sc.stop ()   以前,,}

<强>简化后解释:

xxx.flatMap(线=祝辞line.split (““))中参数线只在=祝辞后面使用一次,可以用“_"符号来表示该参数,xxx.flatMap (_.split (““))

xxx.map(世界=祝辞;新的Tuple2(世界,1))中世界参数也是在=祝辞后只使用一次,可以使用“_"来表示,元组可以省略新的,也可以省略Tuple2, xxx.map ((_, - 1))

xxx。reduceByKey ((“v1: Int v2: Int)=祝辞{v1 + v2})中v1、v2也是在=祝辞后只使用一次,均可以使用“_"来表示,xxx.reduceByKey ((_ + _)

看完上述内容,你们对spark01, scala的wordcount的过程是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

spark01, scala的wordcount的过程是怎样的