Spark詞頻前十的統計練習

2021-01-17 分享電腦學習

承接上一個文檔《Spark本地環境實現wordCount單詞計數》

進一步延伸,做一個詞頻前十的統計練習

邏輯:在reduceByKey的基礎上,首先要根據key對應的value值進行排序(降序排序),取前10個的結果就是Top10

val reduceByKeyRDD = sc.textFile("file:///opt/bigdata/spark/README.md").flatMap(_.split(" ")).filter(_.nonEmpty).map((_,1)).reduceByKey(_+_)

reduceByKeyRDD.sortBy(t => t._2,ascending=false)

reduceByKeyRDD.sortBy(t => t._2,ascending=false).take(10)

sortBy函數:第一個匿名函數表示按照元組的第二個元素進行排序,ascending=false表示按照降序排序,如果不指定這個參數,默認是升序的排序

reduceByKeyRDD.sortBy(t => t._2 * -1).take(10)

也實現了降序排列,提取TOP10

下面這個方法也可以

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).map(t => t.swap).take(10)

分解看下:

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).

t.swap :("the",22) --> (22,"the") --> ("the",22)

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).map(t => t.swap).take(10)

下面這個性能會更好:

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).take(10).map(t => t.swap)

用top(10)代替sortByKey(ascending=false).take(10)這一部分

reduceByKeyRDD.map(t => t.swap).top(10).map(t => t.swap)

相關焦點

  • Spark詞頻前十的統計練習
    承接上一個文檔《》進一步延伸,做一個詞頻前十的統計練習邏輯:在reduceByKey的基礎上,首先要根據key對應的value值進行排序(降序排序),取前10個的結果就是Top10val reduceByKeyRDD = sc.textFile(&34;).flatMap(_.split(&34;)).filter(_.nonEmpty
  • Spark應用的結構
    2、集群模式:Driver:SparkSubmitExecutor:CoarseGrainedExecutorBackend練習:分別查看spark-shell和spark-submit命令可以找到下面的語句1、 spark-shell底層運行的是spark-submit
  • Spark應用的結構的學習
    應用可以有多個Executor練習:local模式下沒有啟動SparkShell的情況下查看jpslocal模式下啟動SparkShell的情況下查看jps啟動集群模式查看jps結論:1、local模式:driver和executor運行在同一個進程(SparkSubmit),以線程的方式進行區分的。
  • Spark案例練習-UV的統計
    繼續上面的PV代碼編寫即可思路:UV的計算1.數據進行過濾清洗,獲取兩個欄位(時間、guid)2.guid非空,時間非空,時間字符串的長度必須大於103.將同一天的數據放在一起,根據guid去重,統計去重的結果
  • Spark案例練習-打包提交
    承接上一篇文檔《Spark案例練習-UV的統計》打開埠18080的歷史服務,會發現沒有歷史日誌,現在我們想要顯示歷史日誌。採取以下的方式一://1.構建SparkContext上下文對象val conf = new SparkConf().setMaster("local")// 指定應用在哪兒執行,可以是local、或者stadnalone、yarn、mesos集群.setAppName("logpvuv") //指定應用的名字.set("spark.eventLog.enabled","true").set("spark.eventLog.dir
  • leetcode192_bash_統計詞頻
    題目寫一個 bash 腳本以統計一個文本文件 words.txt 中每個單詞出現的頻率。為了簡單起見,你可以假設:words.txt只包括小寫字母和 &39; 。每個單詞只由小寫字母組成。單詞間由一個或多個空格字符分隔。
  • 人工智慧-python 生成詞雲(詞頻統計)圖
    詞頻統計,獲取前20最高頻詞,並輸出詞頻顯示,圖像可以設置成自己喜歡的樣式。詞雲圖像顯示:參見注釋步驟,從字典生成詞雲(詞頻統計), 從背景圖建立顏色方案,並將詞雲顏色設置為背景圖方案,顯示出詞雲圖像。
  • python實戰,中文自然語言處理,應用jieba庫來統計文本詞頻
    我們用個小例子演示下這上面的小例子中我們看到了一個問題,如果我們只是簡簡單單的將所有詞切分出來,然後去統計它們出現的次數,那麼你會發現,其中的「是」,「的」等等詞語以及各種標點符號是出現頻率最高的,那麼這裡有2種方式,1是直接去掉長度為1的所有詞語,比如上面所說的「是」,「的」或者標點符號等等,還有一種呢,是用到了TF-IDF技術TF- document
  • Hadoop經典案例--詞頻統計
    總體流程咱們來看看對特別大的文件統計<br data-tomark-pass>大家想想詞頻統計的過程,如果是單機完成,我們需要做的事情是維護一個計數器字典,對每次出現的詞,詞頻+1.但是當數據量非常大的時候,沒辦法在內存中維護這麼大的一個字典,我們就要換一種思路來完成這個任務了,也就是我們所謂的map-reduce過程。
  • 亞馬遜關鍵詞詞頻統計插件,幫助你更好地優化Listing
    亞馬遜關鍵詞詞頻統計插件,幫助你更好地優化Listing介紹給大家一個好玩的關鍵詞統計工具,這個是小編親測的使用流程:--------------------------------------------------------------------------------- 618福利 限時下載 無限制版亞馬遜全站標題搜索詞頻統計插件。
  • 操作練習-Spark on Yarn
    承接上一篇文檔《》將spark應用運行在yarn集群上 官網地址:http://spark.apache.org/docs/2.0.2/running-on-yarn.html1.在standalone集群運行spark應用的時候,指定一些資源(內存、CPU)client模式執行的命令:.
  • Spark案例練習-打包提交
    ${SPARK_HOME}/bin/spark-submit腳本添加參數 --conf &34;3.比如:(1) spark-default.conf 配置 4055(2) 添加參數 --conf &34;spark.ui.port&34;4050&34;結果會運行4050運行一個spark應用的時候,先去加載spark-default.conf裡面的配置文件,第二個回去加載運行spark-submit命令的配置參數,最後代碼中的配置會覆蓋前面的配置
  • spark streaming流處理入門乾貨,傾力奉獻
    02spark streaming概述Spark Streaming 提供一個對於流數據的抽象 DStream。比如對熱點搜索詞語進行統計,每隔十秒輸出過去60秒內排名前十的熱點詞語。這是流處理的一個基本應用場景,很多流處理框架比如Apache Flink都有原生的支持。spark也同樣支持滑動窗口操作。
  • 詞頻和TF-IDF了解一下吧
    詞頻(Word Frequency)是文本中重要詞彙出現的次數及頻率的一種表徵,是進行文本挖掘和自然語言分析的必要過程我們可以通過對詞頻多少及變化的分析,來確定文本內容熱點及其變化趨勢TF是詞頻(Term Frequency),IDF是逆文本頻率指數(Inverse Document Frequency)。
  • spark job 裝載率統計
    可問題是 spark怎麼做迭代計算,難道是for循環嗎?我本來一直在像 能否通過一次shuffle解決問題,苦苦思索,並沒有這樣的實現。Dataset metaDs = spark.sql(&34;&34;&34;)那麼 metaDs 的結果就是Car station next_station order max_orderx1 A B 1 3x1 B C 2 3x1 C null 3 3第二步:設定for循環,從1開始,到3結束,是 小於3,不是小於等於3.針對i
  • 詞彙資料|COCA詞頻表 - 提升詞彙量的終極方法
    戳左上角藍字「巧記詞根」關注我們並點擊右上角●●●菜單欄選擇「設置標」或「置頂公眾號」每周一、周三、周五,Eric陪你記單詞小編今天給大家推薦的為COCA語料庫詞頻表,也是快速提高英語詞彙量的必備利器。
  • Spark案例練習-PV的統計
    ).trim(date,1) // (date,url)})基於reduceByKey做統計數據表示2013年5月19日一共有100000條訪問數據也可以基於groupByKey實現pv統計
  • 利用Python分析文章詞頻,並生成詞雲圖
    利用Python分析文章詞頻,並生成詞雲圖使用request模塊獲取文章數據私信小編01即可獲取大量Python學習資料import jiebaimport requestsimport csvfrom
  • Spark本地環境實現wordCount單詞計數
    編寫類似MapReduce的案例-單詞統計WordCount要統計的文件為Spark的README.md文件分析邏輯:1. 讀取文件,單詞之間用空格分割2.聚合統計每個單詞出現的次數RDD的操作1.讀取文件:sc.textFile("file:///opt/modules/spark/README.md")注意:textFile裡面的路徑,如果沒有指定schema,那麼默認的話是從HDFS文件系統讀取數據
  • 大數據框架Spark的流處理SparkStreaming詳細總結
    192.168.10.100", 8888)//每一行數據分割按空格成單詞val words = lines.flatMap(_.split(" "))// 在本批次內計單詞的數目val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)// 列印每個RDD中的前10