在Spark上執行TopK程式

2022-07-04 18:54:12 字數 1327 閱讀 8244

package

com.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/bash

cd $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程...