精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

利用Scala語言開發Spark應用程序

開發 前端 Spark
park內核是由Scala語言開發的,因此使用Scala語言開發Spark應用程序是自然而然的事情。如果你對Scala語言還不太熟悉,可以閱讀網絡教程A Scala Tutorial for Java Programmers或者相關Scala書籍進行學習。

Spark內核是由Scala語言開發的,因此使用Scala語言開發Spark應用程序是自然而然的事情。如果你對Scala語言還不太熟悉,可以閱讀網絡教程A Scala Tutorial for Java Programmers或者相關Scala書籍進行學習。

本文將介紹3個Scala Spark編程實例,分別是WordCount、TopK和SparkJoin,分別代表了Spark的三種典型應用。

1. WordCount編程實例

WordCount是一個最簡單的分布式應用實例,主要功能是統計輸入目錄中所有單詞出現的總次數,編寫步驟如下:

步驟1:創建一個SparkContext對象,該對象有四個參數:Spark master位置、應用程序名稱,Spark安裝目錄和jar存放位置,對于Spark On YARN而言,最重要的是前兩個參數,***個參數指定為“yarn-standalone”,第二個參數是自定義的字符串,舉例如下:

  1. val sc = new SparkContext(args(0), "WordCount", 
  2.     System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_TEST_JAR"))) 
  3.  

步驟2:讀取輸入數據。我們要從HDFS上讀取文本數據,可以使用SparkCon

  1. val textFile = sc.textFile(args(1)) 

當然,Spark允許你采用任何Hadoop InputFormat,比如二進制輸入格式SequenceFileInputFormat,此時你可以使用SparkContext中的hadoopRDD函數,舉例如下:

  1. val inputFormatClass = classOf[SequenceFileInputFormat[Text,Text]] 
  2. var hadoopRdd = sc.hadoopRDD(conf, inputFormatClass, classOf[Text], classOf[Text]) 

或者直接創建一個HadoopRDD對象:

  1. var hadoopRdd = new HadoopRDD(sc, conf, 
  2.      classOf[SequenceFileInputFormat[Text,Text, classOf[Text], classOf[Text]) 

步驟3:通過RDD轉換算子操作和轉換RDD,對于WordCount而言,首先需要從輸入數據中每行字符串中解析出單詞,然后將相同單詞放到一個桶中,***統計每個桶中每個單詞出現的頻率,舉例如下:

  1. val result = hadoopRdd.flatMap{ 
  2.         case(key, value)  => value.toString().split("\\s+"); 
  3. }.map(word => (word, 1)). reduceByKey (_ + _) 

其中,flatMap函數可以將一條記錄轉換成多條記錄(一對多關系),map函數將一條記錄轉換為另一條記錄(一對一關系),reduceByKey函數將key相同的數據劃分到一個桶中,并以key為單位分組進行計算,這些函數的具體含義可參考:Spark Transformation。

步驟4:將產生的RDD數據集保存到HDFS上。可以使用SparkContext中的saveAsTextFile哈數將數據集保存到HDFS目 錄下,默認采用Hadoop提供的TextOutputFormat,每條記錄以“(key,value)”的形式打印輸出,你也可以采用 saveAsSequenceFile函數將數據保存為SequenceFile格式等,舉例如下:

  1. result.saveAsSequenceFile(args(2)) 

當然,一般我們寫Spark程序時,需要包含以下兩個頭文件:

  1. import org.apache.spark._ 
  2. import SparkContext._ 

WordCount完整程序已在“Apache Spark學習:利用Eclipse構建Spark集成開發環境”一文中進行了介紹,在次不贅述。

需要注意的是,指定輸入輸出文件時,需要指定hdfs的URI,比如輸入目錄是hdfs://hadoop-test/tmp/input,輸出目 錄是hdfs://hadoop-test/tmp/output,其中,“hdfs://hadoop-test”是由Hadoop配置文件core- site.xml中參數fs.default.name指定的,具體替換成你的配置即可。

2. TopK編程實例

TopK程序的任務是對一堆文本進行詞頻統計,并返回出現頻率***的K個詞。如果采用MapReduce實現,則需要編寫兩個作 業:WordCount和TopK,而使用Spark則只需一個作業,其中WordCount部分已由前面實現了,接下來順著前面的實現,找到Top K個詞。注意,本文的實現并不是***的,有很大改進空間。

步驟1:首先需要對所有詞按照詞頻排序,如下:

  1. val sorted = result.map { 
  2.   case(key, value) => (value, key); //exchange key and value 
  3. }.sortByKey(true, 1) 

步驟2:返回前K個:

  1. val topK = sorted.top(args(3).toInt) 

步驟3:將K各詞打印出來:

  1. topK.foreach(println) 

注意,對于應用程序標準輸出的內容,YARN將保存到Container的stdout日志中。在YARN中,每個Container存在三個日志 文件,分別是stdout、stderr和syslog,前兩個保存的是標準輸出產生的內容,第三個保存的是log4j打印的日志,通常只有第三個日志中 有內容。

本程序完整代碼、編譯好的jar包和運行腳本可以從這里下載。下載之后,按照“Apache Spark學習:利用Eclipse構建Spark集成開發環境”一文操作流程運行即可。

3. SparkJoin編程實例

在推薦領域有一個著名的開放測試集是movielens給的,下載鏈接是:http://grouplens.org/datasets/movielens/,該測試集包含三個文件,分別是ratings.dat、sers.dat、movies.dat,具體介紹可閱讀:README.txt,本節給出的SparkJoin實例則通過連接ratings.dat和movies.dat兩個文件得到平均得分超過4.0的電影列表,采用的數據集是:ml-1m。程序代碼如下:

  1. import org.apache.spark._ 
  2. import SparkContext._ 
  3. object SparkJoin { 
  4.   def main(args: Array[String]) { 
  5.     if (args.length != 4 ){ 
  6.       println("usage is org.test.WordCount <master> <rating> <movie> <output>"
  7.       return 
  8.     } 
  9.     val sc = new SparkContext(args(0), "WordCount"
  10.     System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_TEST_JAR"))) 
  11.   
  12.     // Read rating from HDFS file 
  13.     val textFile = sc.textFile(args(1)) 
  14.   
  15.     //extract (movieid, rating) 
  16.     val rating = textFile.map(line => { 
  17.         val fileds = line.split("::"
  18.         (fileds(1).toInt, fileds(2).toDouble) 
  19.        }) 
  20.   
  21.     val movieScores = rating 
  22.        .groupByKey() 
  23.        .map(data => { 
  24.          val avg = data._2.sum / data._2.size 
  25.          (data._1, avg) 
  26.        }) 
  27.   
  28.      // Read movie from HDFS file 
  29.      val movies = sc.textFile(args(2)) 
  30.      val movieskey = movies.map(line => { 
  31.        val fileds = line.split("::"
  32.         (fileds(0).toInt, fileds(1)) 
  33.      }).keyBy(tup => tup._1) 
  34.   
  35.      // by join, we get <movie, averageRating, movieName> 
  36.      val result = movieScores 
  37.        .keyBy(tup => tup._1) 
  38.        .join(movieskey) 
  39.        .filter(f => f._2._1._2 > 4.0) 
  40.        .map(f => (f._1, f._2._1._2, f._2._2._2)) 
  41.   
  42.     result.saveAsTextFile(args(3)) 
  43.   } 

你可以從這里下載代碼、編譯好的jar包和運行腳本。

這個程序直接使用Spark編寫有些麻煩,可以直接在Shark上編寫HQL實現,Shark是基于Spark的類似Hive的交互式查詢引擎,具體可參考:Shark

4. 總結

Spark 程序設計對Scala語言的要求不高,正如Hadoop程序設計對Java語言要求不高一樣,只要掌握了最基本的語法就能編寫程序,且常見的語法和表達方式是很少的。通常,剛開始仿照官方實例編寫程序,包括Scala、Java和Python三種語言實例。

原文鏈接:http://dongxicheng.org/framework-on-yarn/spark-scala-writing-application/

責任編輯:陳四芳 來源: dongxicheng.org
相關推薦

2010-11-18 15:52:32

QMLMeeGo

2012-06-07 09:15:14

ibmdw

2012-02-08 15:06:31

ibmdw

2022-09-19 00:37:13

SaaS云計算開發

2013-02-21 14:14:40

開發Tizen

2013-02-21 14:15:41

開發Tizen

2011-04-01 11:01:02

應用程序BlackBerryJava

2012-03-20 09:20:40

Go語言

2012-06-08 09:28:15

EclipseScalaAndroid

2013-11-19 15:35:01

2009-07-29 17:42:47

ibmdwWeb2.0

2009-08-27 11:53:45

ibmdw云計算

2017-08-09 17:09:47

2010-10-15 09:39:22

MeeGoQt

2009-09-24 17:21:17

加速Hibernate

2009-07-17 16:09:29

Swing桌面應用程序

2011-05-31 13:34:22

應用開發iPad

2011-07-21 16:19:30

iOS Twitter

2013-08-08 09:48:10

Web

2018-12-11 11:41:14

物聯網應用程序IOT
點贊
收藏

51CTO技術棧公眾號

亚洲国产av一区二区| 最新中文字幕视频| www.综合网.com| 99精品桃花视频在线观看| 国产va免费精品高清在线| jizzjizz日本少妇| 日韩av三区| 欧美男生操女生| 日韩欧美国产综合在线| 91成人高清| av资源网一区| 国产欧美亚洲视频| 黄色片视频网站| 91成人精品| 亚洲午夜未满十八勿入免费观看全集| 特种兵之深入敌后| 秋霞国产精品| 婷婷久久综合九色综合伊人色| 天天人人精品| 午夜视频福利在线观看| 国产一区欧美二区| 国产精品久久久亚洲| 久久久久久久久久一区二区三区| 国产影视一区| 亚洲精品乱码久久久久久金桔影视| 一起操在线视频| 性欧美18xxxhd| 亚洲一区在线观看免费| 国产精品夜夜夜爽张柏芝| 你懂的视频在线| 99国产精品视频免费观看| 亚洲jizzjizz日本少妇| 国产乡下妇女三片| 欧美一级视频| 57pao成人永久免费视频| 久久久久99精品成人片试看| 色综合五月天| 一区二区三区四区在线观看视频| 一级特级黄色片| 国产福利一区二区精品秒拍| 日韩午夜在线观看| 欧美日韩精品区别| 91国拍精品国产粉嫩亚洲一区| 欧美性感美女h网站在线观看免费 欧美性xxxx在线播放 | 潘金莲一级淫片aaaaa免费看| 国产九色在线| 国产亚洲欧美中文| 日本在线观看一区二区| 精品推荐蜜桃传媒| 国产亚洲精品福利| 欧美二区在线| 男人天堂综合| 久久久www成人免费毛片麻豆 | 亚州av在线播放| av在线综合网| 久久综合给合久久狠狠色| 头脑特工队2免费完整版在线观看| 日韩三级成人| 欧美视频精品在线观看| 少妇一级淫免费播放| av成人免费| 91精品久久久久久久99蜜桃| 久久久精品高清| gogo大尺度成人免费视频| 91精品在线观看入口| 在线播放免费视频| 日韩视频1区| 精品国产乱码久久久久久免费| 污污免费在线观看| 成年人在线看| 久久久蜜桃精品| 亚洲乱码一区二区三区| 麻豆免费在线视频| 亚洲一区日韩精品中文字幕| 欧美成人高潮一二区在线看| 欧美电影网站| 欧美巨大另类极品videosbest| 亚洲欧美激情一区二区三区| 国产精品毛片视频| 亚洲日韩欧美视频一区| 免费精品在线视频| 欧美视频福利| 日本精品视频在线播放| 中文字幕视频二区| 国产丶欧美丶日本不卡视频| 精品视频免费观看| 91精品专区| 亚洲在线中文字幕| 激情五月亚洲色图| 欧美视频精品全部免费观看| 亚洲韩国日本中文字幕| 国产综合精品久久久久成人av| 欧美激情日韩| 日本午夜精品理论片a级appf发布| 中文字幕免费高清在线观看| 国产·精品毛片| 日本一区二区三区四区高清视频| 亚洲第一图区| 91成人免费在线| 成年人看片网站| 精品国产不卡| 国内成人精品一区| 88av在线视频| 26uuu另类欧美| 蜜臀av.com| 欧美日韩视频免费观看| 精品伦理精品一区| 天堂资源在线视频| 国产日韩一区| 91手机在线观看| 无码人妻丰满熟妇奶水区码| 韩国一区二区视频| 九九99玖玖| 在线观看免费视频你懂的| 日本精品视频一区二区三区| 人妻体内射精一区二区三区| 久久久久久久久丰满| 日韩美女免费观看| 熟妇高潮一区二区高潮| 亚洲人成在线观看一区二区| 狠狠热免费视频| 亚洲国产欧美日本视频| 欧美一区二区三区四区五区| 中文字幕av久久爽一区| 国产日产高清欧美一区二区三区| 亚洲自拍高清视频网站| 337p日本欧洲亚洲大胆鲁鲁| 色先锋aa成人| www.超碰97| 日韩亚洲国产欧美| 动漫精品视频| 中文在线手机av| 国产在线视视频有精品| 欧美午夜免费电影| 91成人在线观看喷潮蘑菇| 国产精品99久久精品| 国产激情久久久久| 深夜福利免费在线观看| 午夜欧美视频在线观看| 在线播放av网址| 欧美视频网站| 91九色在线观看| 影音先锋在线视频| 日韩精品中文字幕在线一区| 天天干中文字幕| 国产老妇另类xxxxx| 91免费视频黄| 免费超碰在线| 欧美一区二区三区婷婷月色| 99久久99久久精品国产| 国产一区二区在线电影| 午夜探花在线观看| 欧美影院精品| 久久免费精品视频| 日本精品一区二区在线观看| 亚洲国产日韩综合久久精品| 欧美xxxxx精品| 中文欧美日韩| 欧洲一区二区在线观看| 欧美色999| 最近2019中文字幕第三页视频| 中文字幕久久网| 亚洲欧美色图小说| 成年人性生活视频| 亚洲每日更新| 欧美日韩高清免费| 成人日韩av| 欧美精品一本久久男人的天堂| 亚洲h视频在线观看| 午夜久久久影院| 国产精品无码午夜福利| 日本不卡在线视频| 日韩国产精品毛片| 亚洲精品影片| 国产ts一区二区| 日韩伦理在线电影| 精品久久久久久综合日本欧美| 天天操中文字幕| 中文字幕av一区二区三区 | 日产欧产美韩系列久久99| 制服丝袜综合日韩欧美| 日韩视频在线直播| 欧美亚洲激情在线| 日本不卡不卡| 亚洲成人激情视频| 青娱乐在线免费视频| 亚洲欧美怡红院| 免费a v网站| 男人操女人的视频在线观看欧美| 99中文字幕在线观看| 亚洲国产合集| 成人乱人伦精品视频在线观看| www.九色在线| 日日噜噜噜夜夜爽亚洲精品 | 中文字幕一区日韩电影| 亚洲av无码乱码国产精品| 一本一本大道香蕉久在线精品| 婷婷久久综合网| www国产亚洲精品久久麻豆| 久久这里只精品| 在线亚洲伦理| 免费观看国产视频在线| 亚洲a级精品| 91偷拍精品一区二区三区| 黄色精品视频| 97国产精品人人爽人人做| 三级外国片在线观看视频| 亚洲国内精品视频| 国产不卡av在线播放| 色综合久久久久久久久| 欧美日韩成人免费观看| 中文字幕一区二区三区色视频| 亚洲AV无码国产精品| 国产麻豆视频一区二区| 天天操天天爱天天爽| 亚洲欧洲日本mm| 国产精品12p| 精品色999| 久久伦理网站| 嗯用力啊快一点好舒服小柔久久| 成人h猎奇视频网站| 69堂精品视频在线播放| 欧美洲成人男女午夜视频| 国产第一页在线| 欧美日本啪啪无遮挡网站| 免费**毛片在线| 国产午夜精品一区二区三区| 午夜影院在线视频| 精品国产区一区| h狠狠躁死你h高h| 欧美精品一卡两卡| 中文字幕久久网| 精品视频一区二区三区免费| www.色国产| 欧美性猛交xxxx免费看久久久| 久久久久黄色片| 亚洲免费视频成人| 国产97免费视频| 亚洲视频网在线直播| 免费三级在线观看| 亚洲视频你懂的| 日本黄色免费片| 国产精品国产成人国产三级 | 天堂va欧美va亚洲va老司机| 国产一区二区三区免费在线观看 | 欧美一区免费看| 欧美性黄网官网| 波多野结衣视频在线看| 91国产丝袜在线播放| 日本中文字幕在线观看视频| 91福利资源站| 中文字幕+乱码+中文乱码91| 欧美三级电影一区| 在线免费观看中文字幕| 欧美精三区欧美精三区| 99热这里只有精品5| 欧美xxxxx牲另类人与| 日韩一级在线播放| 国产偷国产偷亚洲清高网站| 五月婷婷激情在线| 亚洲欧美一区二区三区四区| yw193.com尤物在线| 日韩网站免费观看高清| 伊人影院在线视频| 午夜精品一区二区三区av| 在线看片福利| 国产日本欧美在线观看| 精品一级视频| 久久国产精品免费一区| 免费欧美一区| 日本一区网站| 亚洲综合色站| 日韩少妇内射免费播放| 日本在线不卡视频| 超碰人人cao| 97se亚洲国产综合在线| 日韩福利在线视频| 一区二区三区欧美视频| 久久久久久久久影院| 欧美色老头old∨ideo| 成人激情四射网| 亚洲视频在线观看免费| 顶级网黄在线播放| 欧美伊久线香蕉线新在线| 国产精品.xx视频.xxtv| 成人高清在线观看| 国产欧美日韩在线观看视频| 女女同性女同一区二区三区按摩| 国产精品一区亚洲| 在线观看国产中文字幕| 成人av网站免费观看| 日本一道本视频| 亚洲h动漫在线| 一个人看的www日本高清视频| 亚洲第一精品自拍| 免费网站看v片在线a| 26uuu亚洲国产精品| 久久69av| 日韩精品一区二区三区丰满| 樱桃成人精品视频在线播放| 无需播放器的av| 99国产精品国产精品久久| 亚洲不卡在线播放| 一本色道久久综合亚洲aⅴ蜜桃| 99re只有精品| 中文字幕亚洲一区二区三区五十路| 免费在线观看的电影网站| 国产精品视频精品| 亚洲国产网址| 亚洲色欲久久久综合网东京热| 免费人成网站在线观看欧美高清| 中文成人无字幕乱码精品区| 亚洲精品国产精品乱码不99| 中文字幕二区三区| 亚洲欧美成人精品| av2020不卡| 97人摸人人澡人人人超一碰| 成人在线免费观看视频| 黑人糟蹋人妻hd中文字幕| 丁香六月久久综合狠狠色| 国内毛片毛片毛片毛片毛片| 在线亚洲精品福利网址导航| 五月婷婷激情在线| 午夜精品久久久久久久久久久久| 日韩精品视频在线看| 在线观看欧美激情| 日本va欧美va欧美va精品| av在线网站观看| 日韩欧美在线第一页| 五月婷婷六月激情| 97视频在线观看亚洲| 风间由美中文字幕在线看视频国产欧美| 2025韩国大尺度电影| 精品中文字幕一区二区| 国产美女网站视频| 欧美日韩在线综合| 在线观看免费网站黄| 国产精品青青在线观看爽香蕉| 精品视频国产| 国产日韩欧美久久| 中文在线资源观看网站视频免费不卡 | 欧美扣逼视频| 清纯唯美亚洲综合| 九一亚洲精品| 午夜dv内射一区二区| 国产校园另类小说区| 中文字幕男人天堂| 久久九九免费视频| 一区二区在线免费播放| 亚洲 欧美 综合 另类 中字| www.日本不卡| 免费黄色网址在线| 国产一区二区三区毛片| 国产精品第一| 热这里只有精品| 国产v日产∨综合v精品视频| 国产一级视频在线| 亚洲黄色www网站| 韩日成人影院| 亚洲一区二区不卡视频| 国产一区二区在线观看免费 | 欧美性受极品xxxx喷水| 69av在线| av一区二区三区在线观看| 影音先锋久久资源网| a毛片毛片av永久免费| 在线观看视频一区二区| 免费观看成人高潮| 99一区二区三区| 久久精品女人| 黄色录像一级片| 亚洲第一精品夜夜躁人人躁| 电影亚洲精品噜噜在线观看| 一区二区日本| 成人精品亚洲人成在线| 成人毛片在线播放| 俺去了亚洲欧美日韩| 国产精品久av福利在线观看| 久草在在线视频| 一区二区三区四区乱视频| 亚洲欧洲精品视频| 成人久久一区二区三区| 99国产精品| 大地资源高清在线视频观看| 亚洲成年人在线| 成人全视频在线观看在线播放高清| 日韩欧美猛交xxxxx无码| 久久精品人人做| 成 人片 黄 色 大 片| 国产精品免费久久久久影院| 欧美成人69| 久久久久无码精品国产sm果冻| 日韩一区二区电影| 日韩免费小视频| 你真棒插曲来救救我在线观看| 国产精品久久一级| 香蕉视频国产在线| 95av在线视频| 奇米亚洲午夜久久精品| 日韩av女优在线观看|