zoukankan      html  css  js  c++  java
  • spark基于win上面的操作

      自己前面的小练习一直都是在linux上面写的,可是最近由于要把他迁移到win上面,我在自己的csdn博客有对如何在win上面搭建spark环境做出说明,好了,我们还是先看看

      今天的内容吧

        1.假如你有一个文件,如果你想实现以前的mapReduce的操作,这个时候,如果我们使用spark则会变的非常的简单,如果你此时的文件是以" "进行分割的,那我就可以这

    def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("UrlCount").setMaster("local")
        val sc = new SparkContext(conf)
    
        //rdd1将数据进行切分,元祖中放的是(URL,1)
         val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
          val f = line.split("	")
          (f(1),1)
        })
          val rdd2 = rdd1.reduceByKey(_+_)
      }
    则此时的rdd2,就已经完成了wordCount的操作了
    

      第一个练习(对一个数组进行循环处理)

    package cn.wj.test.spark.day03
    
    import org.apache.spark.{SparkConf, SparkContext}
    
    /**
      * Created by WJ on 2016/12/30.
      */
    object ForeachDemo2 {
      def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("ForeachDemo2").setMaster("local[3]")
        val sc = new SparkContext(conf)
        val rdd1 = sc.parallelize(List(1,2,3,4,5,6,7,8,9))
        rdd1.foreach(println(_))
        sc.stop()
      }
    }
    

      

      2.第二个练习

      

    package cn.wj.spark.day02
    
    import java.net.URL
    
    import org.apache.spark.{SparkConf, SparkContext}
    
    /**
      * Created by WJ on 2016/12/30.
      */
    // 这个是以java来进行排序,如果内存过大,可能会出现溢出的操作
    object UrlCount {
      def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("UrlCount").setMaster("local")
        val sc = new SparkContext(conf)
    
        //rdd1将数据进行切分,元祖中放的是(URL,1)
         val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
          val f = line.split("	")
          (f(1),1)
        })
        val rdd2 = rdd1.reduceByKey(_+_)
        val rdd3 = rdd2.map(t=>{
          val url = t._1
          val host = new URL(url).getHost()
          (host,url,t._2)
        })
    //    println(rdd2.collect.toBuffer)
        //这个的操作是,将rdd4的3以host的进行分组,软后并在每一个分组的情况下,以value中的第三个数据进行排序
        //,并且只取前三个的排序
        val rdd4 = rdd3.groupBy(_._1).mapValues(it =>{
          it.toList.sortBy(_._3).reverse.take(3)
        })
        println(rdd4.collect().toBuffer)
      }
    }
    

      

      第三个练习

      

    package cn.wj.test.spark.day03
    
    import org.apache.spark.{SparkConf, SparkContext}
    import java.net.URL
    /**
      * Created by WJ on 2016/12/31.
      */
    object AddUrlCount3 {
    
      val arr = Array("java.itcast.cn","php.itcast.cn","net.itcast.cn")
    
      def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("AppUrlCount3").setMaster("local")
        val sc = new SparkContext(conf)
    
    //    val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
    //       val f = line.split("	")
    //      (f(1),1)
    //    })
    
         val rdd1 = sc.textFile("E://Test/itcast.log").map( line =>{
           val f = line.split("	")
           (f(1),1)
         })
         val rdd2 = rdd1.reduceByKey(_+_)
        val rdd3 = rdd2.map(t=>{
          val url = t._1
          val host = new URL(url).getHost()
          (host,url,t._2)
        })
    
        for(ins <- arr){
          val rdd = rdd3.filter(_._1==ins)
          val result = rdd.sortBy(_._3,false).take(3)
          println(result.toBuffer)
        }
        sc.stop()
    
      }
    }
    

      

  • 相关阅读:
    计算机基础数据结构讲解第九篇-顺序队列
    计算机基础数据结构讲解第八篇-栈
    计算机基础数据结构讲解第七篇-链表操作
    计算机基础数据结构讲解第六篇-顺序表操作
    计算机基础数据结构讲解第五篇-顺序表
    计算机基础数据结构讲解第三篇-B树和B+树
    计算机基础数据结构讲解第二篇-散列查找
    MLHPC 2018 | Aluminum: An Asynchronous, GPU-Aware Communication Library Optimized for Large-Scale Training of Deep Neural Networks on HPC Systems
    MXNet源码分析 | KVStore进程间通信
    链表类问题
  • 原文地址:https://www.cnblogs.com/wnbahmbb/p/6240063.html
Copyright © 2011-2022 走看看