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
- 漢字之美,拼音之韻
- 深入Spring之IOC之載入BeanDefinitionSpringBean
- PHP之string之ord()函式使用PHP函式
- 若之
- JavaScript之thisJavaScript
- React之元件(component)之間的通訊React元件
- 計算方法之祖沖之的精度
- Kubernetes安裝之八:配置master之schedulerAST
- vue 兄弟元件之間傳值之busVue元件
- 《碼農翻身》之浪潮之巔的WebWeb
- 揭秘ORACLE備份之----RMAN之五(CATALOG)Oracle
- 序列SRAM和FRAM之間的相似之處
- 計算機網路之HTTP之概況計算機網路HTTP
- PHP之string之str_split()函式使用PHP函式
- AI犯錯誰之過?切勿盲目相信之AI
- Java常用資料結構之Set之TreeSetJava資料結構
- PHP之string之str_pad()函式使用PHP函式
- 前端之資料模擬之Mock.js前端MockJS
- flutter之從零開始搭建(一)之 BottomNavigationBarFlutterNavigation
- kubernetes實踐之五十五:kubectl之配置kubeconfig
- Linux之 psLinux
- linux之sedLinux
- linux之awkLinux
- Solon 之 STOMP
- Python之QRCodePython
- OI之詩
- libevent之event
- libevent之bufferevents
- libevent之evbuffer
- libevent之evconnlistener
- phpredis之zrangeByScorePHPRedis
- 天堂之門
- Redis之setRedis
- Redis之StringRedis
- FASM之HelloWorldASM