packagecom.cn.gao
import
org.apache.spark.sparkconf
import
org.apache.spark.sparkcontext
import
org.apache.spark.sparkcontext._
/***
@author
hadoop
* 對文字進行詞頻統計,並返回出現頻率最高的k個詞 *
*/object topk
val conf = new
sparkconf()
val sc = new
sparkcontext(conf)
//sparkcontext 是把**提交到集群或者本地的通道,我們編寫spark**,無論是要本地執行還是集群執行都必須有sparkcontext的例項
val line = sc.textfile(args(0))
//
//其中的\\s表示 空格,回車,換行等空白符,+號表示乙個或多個的意思
val result = line.flatmap(_.split("\\s+")).map((_, 1)).reducebykey(_+_)
val sorted = result.map.sortbykey(true,1)
val topk = sorted.top(args(1).toint)
topk.foreach(println)
sc.stop
}}
正規表示式,
\\d表示 0-9 的數字,
\\s表示 空格,回車,換行等空白符,
\\w表示單詞字元(數字字母下劃線)
+號表示乙個或多個的意思
打包可以在eclipse中實現。
topk.sh
#!/bin/bashcd $spark_home/bin
spark-submit \
--master spark://
192.168.1.154:7077 \
--class
com.cn.gao.topk \
--name topk \
--executor-memory 400m \
--driver-memory 512m \
/usr/local/myjar/topk.jar \
hdfs:
5
最後一行是引數,上述統計詞頻出現在前5的單詞。
將要統計的檔案readme.md上傳到hdfs中指定的目錄,執行指令碼檔案即可。
在Spark上執行WordCount程式
1.編寫程式 如下 wordcount.scala package wordcount import org.apache.spark.sparkconf import org.apache.spark.sparkcontext import org.apache.spark.sparkcontex...
Spark 程式在Yarn上的記憶體問題,簡單解釋
當上傳spark程式時,總會有出現以下這個錯誤 spark submit報錯 container exited with a non zero exit code 143 還有比如 outofmemory,memory exceed 等等,乙個頭兩個大。對於只是使用spark程式的人,我實在是沒興趣...
PHP程式在IIS上如何執行
在windows作業系統上通過安裝iis服務,可以很簡單 的建立乙個網頁伺服器,但是iis只能支援asp程式的執行,對於網路上豐富的php程式資源,該如何才能使用呢?通常,要執行php程式,都是使用apache http伺服器 php處理程式來架設網頁伺服器的。但是,apache無法直接支援asp程...