spark基於win上面的操作

來源:互聯網
上載者:User

標籤:cas   分享   import   host   split   cal   res   溢出   result   

  自己前面的小練習一直都是在linux上面寫的,可是最近由於要把他遷移到win上面,我在自己的csdn部落格有對如何在win上面搭建spark環境做出說明,好了,我們還是先看看

  今天的內容吧

    1.假如你有一個檔案,如果你想實現以前的mapReduce的操作,這個時候,如果我們使用spark則會變的非常的簡單,如果你此時的檔案是以"\t"進行分割的,那我就可以這

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("\t")      (f(1),1)    })      val rdd2 = rdd1.reduceByKey(_+_)  }則此時的rdd2,就已經完成了wordCount的操作了

  第一個練習(對一個數組進行迴圈處理)

package cn.wj.test.spark.day03import 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.day02import java.net.URLimport 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("\t")      (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.day03import 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("\t")//      (f(1),1)//    })     val rdd1 = sc.textFile("E://Test/itcast.log").map( line =>{       val f = line.split("\t")       (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()  }}

  

spark基於win上面的操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.