spark-streaming之 socketTextStream
package hgs.spark.streaming import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.streaming.Seconds import org.apache.spark.streaming.StreamingContext import org.apache.spark.storage.StorageLevel import org.apache.spark.HashPartitioner object SocketStreamingTest { def main(args: Array[String]): Unit = { val conf = new SparkConf(); conf.setMaster("local[2]").setAppName("SocketStreaming") val context = new SparkContext(conf); //要新增spark-streaming的依賴包,spark的Seconds val streamContext = new StreamingContext(context,Seconds(5)); val ds = streamContext.socketTextStream("192.168.6.129", 8888, StorageLevel.MEMORY_ONLY); streamContext.checkpoint("d:\\chekpoint") //val ds2 = ds.flatMap(_.split(" ")).map((_,1)).reduceByKey((x,y)=>(x+y))//這種方式只是對該批次資料進行處理,並沒有累計上一個批次 //updateFunc: (Iterator[(K, Seq[V], Option[S])]) K:單詞, Seq[V]該批次單詞出現次數列表,Option:上一次計算的結果 val updateFunc=(iter:Iterator[(String,Seq[Int],Option[Int])])=>{ //iter.flatMap(it=>Some(it._2.sum+it._3.getOrElse(0)).map((it._1,_)))//方式一 //iter.flatMap{case(x,y,z)=>{Some(y.sum+z.getOrElse(0)).map((x,_))}}//方式二 iter.flatMap(it=>Some(it._1,(it._2.sum.toInt+it._3.getOrElse(0))))//方式三 } val partitionner = new HashPartitioner(2) //透過updateStatByKey來進行累加 val ds2 = ds.flatMap(_.split(" ")).map((_,1)).updateStateByKey(updateFunc, partitionner, true) //列印 ds2.print() streamContext.start() streamContext.awaitTermination() } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2216732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark-Streaming的學習使用Spark
- hadoop基礎學習三十一(spark-streaming)HadoopSpark
- Spark報錯(二):關於Spark-Streaming官方示例wordcount執行異常Spark
- oracle之 RAC Interconnect之HAIPOracleAI
- 漢字之美,拼音之韻
- Python基礎之(三)之字典Python
- 設計模式之禪之代理模式設計模式
- 程式碼之美---遞迴之美遞迴
- 科學之抽象管理之提升抽象
- JavaScript之thisJavaScript
- 若之
- 深入Spring之IOC之載入BeanDefinitionSpringBean
- PHP之string之ord()函式使用PHP函式
- 《碼農翻身》之浪潮之巔的WebWeb
- vue 兄弟元件之間傳值之busVue元件
- 架構之爭,體制之惑(1)--產品經理模式之弊論架構模式
- 前端之資料模擬之Mock.js前端MockJS
- 軟體測試江湖之公會武器之爭
- Java常用資料結構之Set之TreeSetJava資料結構
- AI犯錯誰之過?切勿盲目相信之AI
- React之元件(component)之間的通訊React元件
- 計算機網路之HTTP之概況計算機網路HTTP
- 揭秘ORACLE備份之----RMAN之五(CATALOG)Oracle
- Android高階之十三講之安全方案Android
- QT之不同主機之間TCP通訊QTTCP
- 【Zookeeper】原始碼分析之持久化(二)之FileSnap原始碼持久化
- AMD and CMD are dead之KMD.js之懶JS
- 程式設計之美之買票找零程式設計
- Java物件之間的比較之equals和==Java物件
- 前端之HTML前端HTML
- Java 之 JDBCJavaJDBC
- css之定位CSS
- jQuery之documentFragmentjQueryFragment
- react之schedulerReact
- html之iframe,aHTML
- JS之DOMJS
- css之displayCSS
- 機器學習之皮毛機器學習