Scala wordcount

2020-03-12 268次浏览 已收录 7个评论
package wordcount
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
object wordfcount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local").setAppName("count")
    val sc=new SparkContext(conf)
    val lines:RDD[String]=sc.textFile("./words")
    val words:RDD[String]=lines.flatMap(line=>{
      line.split(" ")
    })
    val paireords:RDD[(String,Int)]=words.map(word=>{
      new Tuple2(word,1)
    })
    val reduce=paireords.reduceByKey((v1:Int,v2:Int)=>{v1+v2})
    val result=reduce.sortBy(tuple=>{
      tuple._2//按第二位进行降序排序
    },false)
    result.foreach(tuple=>{
     println(tuple)
    })
    sc.stop()
  }

}

算子

package wordcount
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
object wordfcount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local").setAppName("count")
    val sc=new SparkContext(conf)
    val lines:RDD[String]=sc.textFile("./words")
    //true 代表有无放回 放回
    val result=lines.sample(true, 0.1)
    result.foreach(println)
    println("**************************************")
    
    //过滤算子
    lines.filter(s=>{
      s.equals("hello zhazha")
    }).foreach(println);
    
    println("**************************************")
    
    //将worker端计算的结果回收到Driver端
    lines.collect().foreach(println)
    
    sc.stop()
  }

} 


渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Scala wordcount
喜欢 (0)

您必须 登录 才能发表评论!

(7)个小伙伴在吐槽
  1. 奥利给
    小蚯蚓2020-03-27 12:46
  2. 以后多多交流
    白云2020-03-27 13:36
  3. 记住这个网站了
    小白2020-03-27 14:02
  4. 我也是学计算机的
    靓妹2020-03-28 16:25
  5. 看了那么多博客,就你的能看懂
    hello2020-05-26 09:29
  6. 奥利给
    努力2020-05-26 09:54
  7. 可以
    笔记本2020-05-26 10:46