精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

午夜不卡久久精品无码免费| 一级二级三级欧美| 特级毛片www| 日韩综合一区| 精品日韩在线观看| 国产最新免费视频| 国产视频在线播放| 91视频你懂的| 91在线观看免费网站| 丰满少妇乱子伦精品看片| 波多野结衣一区| 欧美videossexotv100| 国产精品视频一区二区三区四区五区| 成黄免费在线| eeuss影院一区二区三区| 国产精品麻豆va在线播放| 黄色一级免费视频| 色乱码一区二区三区网站| 精品成人在线观看| 成年人三级黄色片| 日本午夜大片a在线观看| 中文字幕欧美一| 欧美污视频久久久| 六月丁香综合网| 久久国产综合精品| 欧美在线视频免费播放| 欧美色图一区二区| av中文字幕一区二区| 亚洲激情第一页| 成人亚洲精品777777大片| 91超碰在线| 亚洲日本一区二区| 亚洲国产婷婷香蕉久久久久久99 | 国产黄色在线播放| 成人黄页在线观看| 亚洲一区二区三| 91成人国产综合久久精品| 噜噜噜91成人网| 2019中文字幕在线免费观看| 69精品久久久| 国产中文一区| 免费成人高清视频| 日本一二三区在线观看| 日韩激情图片| 尤物yw午夜国产精品视频明星 | 亚洲影院一区二区三区| 日韩激情一区二区| 热久久这里只有| 国产成人在线播放视频| 亚洲激情午夜| 久久免费福利视频| 久久久久久免费观看| 在线看片不卡| 欧美老女人xx| 精品少妇一二三区| 欧美性久久久| 欧美激情第6页| 精品视频一区二区在线观看| 欧美另类综合| 欧美激情视频网站| 精品无码久久久久久久久| 欧美激情综合| 性欧美xxxx视频在线观看| 国内免费精品视频| 另类国产ts人妖高潮视频| 日本久久中文字幕| 国产一级片免费视频| 美女视频黄免费的久久| 国产精品自拍偷拍视频| 国产乱色精品成人免费视频 | 亚洲av成人片无码| 日韩超碰人人爽人人做人人添| 亚洲国产精品va在看黑人| 中文字幕一区三区久久女搜查官| 伊人久久大香线蕉av不卡| 国产亚洲综合久久| 99鲁鲁精品一区二区三区| 欧美.日韩.国产.一区.二区| 久久久久久国产精品美女| 成年免费在线观看| 日韩vs国产vs欧美| 成人综合国产精品| 日本免费一区视频| 久久精品亚洲精品国产欧美kt∨ | 国产av一区二区三区传媒| 国产色噜噜噜91在线精品 | 国产av自拍一区| 久久国产精品成人免费观看的软件| 精品国产依人香蕉在线精品| 日本一级黄色大片| 丝袜美腿高跟呻吟高潮一区| 国产主播精品在线| 免费激情视频网站| 国产欧美日韩卡一| 亚洲国产成人精品无码区99| 成人性生活视频| 911精品产国品一二三产区| 美女扒开腿免费视频| 国产区精品区| 欧美激情手机在线视频| 91丝袜一区二区三区| 国产在线国偷精品免费看| 久久精品人成| 成人片在线看| 日本韩国一区二区| 久久久久国产免费| 日韩理论电影院| 午夜精品在线视频| 国产成人精品毛片| 国产清纯白嫩初高生在线观看91| 丁香六月激情网| jizz亚洲女人高潮大叫| 亚洲精品久久久久国产| 91香蕉视频在线播放| 三级欧美在线一区| 国产精品三区四区| 超碰在线免费公开| 欧美性猛片xxxx免费看久爱| wwwxx日本| 91av精品| 国产精品视频中文字幕91| 国产又爽又黄网站亚洲视频123| 中文字幕色av一区二区三区| 精品免费国产一区二区| 国产精品jk白丝蜜臀av小说| 日韩中文字幕在线免费观看| 亚洲无码精品一区二区三区| 99国产精品视频免费观看| 国产美女作爱全过程免费视频| 免费成人毛片| 中国人与牲禽动交精品| 秋霞av一区二区三区| 成人18视频日本| 妺妺窝人体色www看人体| 成人在线视频国产| 久久影院资源网| 亚洲天堂avav| 国产精品少妇自拍| 久久久国产欧美| 国产一区二区三区探花| 91精品国产一区| 黄色一级a毛片| 亚洲国产欧美一区二区三区丁香婷| 一级黄色高清视频| 一区二区三区午夜视频| 成人福利在线观看| 国产cdts系列另类在线观看| 欧美日韩国产一级二级| 国产又粗又猛又爽又黄的视频四季| 天堂蜜桃一区二区三区 | 9999国产精品| 国产精品露脸自拍| 午夜视频在线免费观看| 欧美日韩国产综合视频在线观看 | 国产精品毛片a∨一区二区三区|国| 肉丝一区二区| 在线观看区一区二| 懂色av粉嫩av浪潮av| 免费高清成人在线| 中文字幕欧美日韩一区二区三区| 欧美日韩va| 欧美成人精品在线观看| 成人乱码一区二区三区| 亚洲成人在线网站| a级在线观看视频| 久久久久久久欧美精品| 日韩精彩视频| 日本a人精品| 久久6免费高清热精品| 亚洲AV午夜精品| 黄色成人在线播放| xxx在线播放| 另类综合日韩欧美亚洲| 日本男女交配视频| 亚洲品质自拍| 国产精品一区二区久久久| 怡红院在线观看| 日韩精品免费一线在线观看| 中文字幕乱码无码人妻系列蜜桃| 亚洲私人影院在线观看| 中文字幕精品久久久| 丝袜亚洲另类欧美| 在线观看污视频| 欧美日韩导航| 成人亚洲欧美一区二区三区| 久草在线中文最新视频| 色先锋资源久久综合5566| 黄色av免费观看| 色老汉av一区二区三区| 黄色一级免费视频| 国产日韩v精品一区二区| 一级黄色高清视频| 裸体素人女欧美日韩| 日韩精品手机在线观看| 中文字幕av一区二区三区人| 91网在线免费观看| 精品日韩视频| 欧美激情啊啊啊| 日本中文字幕在线看| 亚洲国产第一页| 国产乱淫av免费| 色哟哟亚洲精品| 国产亚洲精品av| 国产精品对白交换视频| 青青草成人免费视频| 国产在线播精品第三| 日本xxxxxxx免费视频| 国内精品久久久久久久影视蜜臀| 日韩福利二区| 欧美午夜18电影| 97se亚洲综合在线| 成人在线视频免费看| 欧美在线免费看| 青青在线视频| 久久久精品国产亚洲| www.av在线播放| 亚洲女人天堂成人av在线| 午夜精品久久久久久久99| 欧美亚洲日本国产| 黄色大片网站在线观看| 一区av在线播放| 内射一区二区三区| 国产精品日韩成人| 国产熟女一区二区| 26uuu精品一区二区| 动漫av在线免费观看| 国产盗摄女厕一区二区三区| 中文字幕66页| 久久精品国产在热久久| 国产男女激情视频| 久久亚洲风情| 乱妇乱女熟妇熟女网站| 影音先锋国产精品| 国产免费裸体视频| 欧美韩日精品| 777久久精品一区二区三区无码| 希岛爱理一区二区三区| 亚洲国产一区在线| 欧美亚洲国产激情| 亚洲精品欧美精品| 欧州一区二区| 亚洲精品9999| 91亚洲一区| 亚洲国产精品综合| 91一区二区| 午夜久久久久久久久久久| 亚洲香蕉av| 久久久国内精品| 黄色成人91| 国产a级片网站| 午夜亚洲一区| 波多野结衣作品集| 蜜臀久久99精品久久久久宅男| 91热这里只有精品| 久久成人av少妇免费| 亚洲av毛片在线观看| 国产白丝网站精品污在线入口| 制服下的诱惑暮生| 成人av在线观| 日本黄色网址大全| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲图色在线| 91成人影院| h无码动漫在线观看| 国产日韩一区二区三区在线| 北条麻妃在线一区| 免费成人av在线| 色黄视频免费看| aaa国产一区| 亚洲国产日韩一区无码精品久久久| 日本一区二区三区视频视频| 91精品少妇一区二区三区蜜桃臀| 亚洲精品国产一区二区精华液 | 欧美激情视频一区二区三区在线播放| 老司机激情视频| 亚洲资源av| 中文字幕66页| 成人深夜福利app| 亚洲天堂视频一区| 国产精品久久久久久亚洲伦| 日本老熟俱乐部h0930| 欧美日韩免费区域视频在线观看| 日韩精选在线观看| 91精品国产一区二区三区蜜臀| 风流老熟女一区二区三区| 亚洲色无码播放| 先锋影音在线资源站91| 浅井舞香一区二区| 精品视频在线观看免费观看| 九九九九九九精品| 国产精品99一区二区三区| 日韩视频免费播放| 色女人在线视频| 国产成人精品免费网站| 精品国产乱码久久久久夜深人妻| 久久免费看少妇高潮| 久草福利资源在线| 欧美视频在线观看免费| 国产精品欧美久久久久天天影视| 亚洲精品www久久久| 拍真实国产伦偷精品| 韩国视频理论视频久久| 麻豆久久久久| 欧美h视频在线| 欧美激情第二页| 国产精品区在线| 97se亚洲国产综合自在线不卡| 99久久99久久精品国产| 一本久久精品一区二区| 国产高清在线观看视频| 一本色道久久综合狠狠躁篇怎么玩 | 丁香激情综合五月| 日韩免费成人av| 午夜欧美一区二区三区在线播放| 97超视频在线观看| 亚洲欧美日韩天堂| 波多野结衣久久| 色婷婷久久av| 久久久人成影片一区二区三区在哪下载 | 波多野结衣 作品| 日av在线不卡| 中文在线一区二区三区| 一区二区三区在线高清| 91精品国产乱码久久久久| 亚洲欧美国产高清va在线播| 白白色在线观看| aa成人免费视频| 中文av一区| 肉色超薄丝袜脚交| 国产精品超碰97尤物18| 欧美性受xxx黑人xyx性爽| 亚洲精品成人av| 青青草视频在线免费直播| 91久久嫩草影院一区二区| 国产精品久久久久蜜臀 | 日本一道高清亚洲日美韩| 免费看成人片| 午夜亚洲性色福利视频| 亚洲制服丝袜在线播放| 亚洲成人福利片| 黄色aaa大片| 97在线免费观看| 欧美sss在线视频| av7777777| 久久久久青草大香线综合精品| 久久露脸国语精品国产91| 精品国产网站在线观看| 成人av影院在线观看| 国产精品青青草| 亚洲美女色禁图| 在线免费播放av| 亚洲国产毛片aaaaa无费看| 日本人妻丰满熟妇久久久久久| 欧美精品18videos性欧美| 国产一区二区三区精品在线观看| 9l视频自拍9l视频自拍| 国产精品1区2区| 九热这里只有精品| 亚洲精品视频中文字幕| 国产极品久久久久久久久波多结野| 日本在线观看不卡| 久久99久久精品| 亚洲色婷婷一区二区三区| 亚洲精品在线一区二区| 女人让男人操自己视频在线观看 | 国产精品青草久久久久福利99| 成人羞羞网站入口免费| 手机精品视频在线| 亚洲一区二区三区四区五区黄| 十八禁一区二区三区| 欧美最猛性xxxxx免费| 日韩欧美一区二区三区在线视频| 91欧美一区二区三区| 亚洲国产美女搞黄色| 韩国中文字幕2020精品| 91夜夜揉人人捏人人添红杏| 亚洲一本视频| 亚洲无人区码一码二码三码的含义 | y97精品国产97久久久久久| 欧美日韩黄网站| 夫妻免费无码v看片| 国产精品毛片a∨一区二区三区| 精品黑人一区二区三区在线观看| 81精品国产乱码久久久久久| 欧美熟乱15p| 午夜福利三级理论电影| 在线免费观看视频一区| 超碰在线网址| 日本高清久久一区二区三区| 激情综合五月天| 中日韩黄色大片| 久久精品最新地址| 欧美国产极品| 久久无码人妻一区二区三区| 欧美日韩精品国产| av在线免费网址| 免费一区二区三区| 国产乱淫av一区二区三区 | 8v天堂国产在线一区二区| 欧美极品videos大乳护士|