imf大数据:第95课:streaming实战,实现在线热搜索词

来源:互联网 发布:快递怎么发掘淘宝客户 编辑:程序博客网 时间:2024/04/28 08:40
import org.apache.spark.SparkConfimport org.apache.spark.streaming.{Duration, Seconds, StreamingContext}object  class_95_OnlineHottestItems{  /**    * 使用Scala开发集群运行的Spark 在线黑名单过滤程序    * @author DT大数据梦工厂    * 新浪微博:http://weibo.com/ilovepains/    * 不是在线处理数据,都是没有价值的    *    *    */  def main(args: Array[String]){    val conf=new SparkConf().setMaster("local[2]").setAppName("HottestItems")    val ssc=new StreamingContext(conf,Duration(5))    val soDstream=ssc.socketTextStream("master",9999)    soDstream      .map(_.split(" ")(1))//按照空格分割取出第二个元素      .map(item=>(item,1))//元素转化成turple2          .reduceByKeyAndWindow((v1:Int,v2:Int)=>v1+v2,Seconds(60),Seconds(20))//以60s窗口长度,20s滑动间隔进行元素的累加      .transform(ItemRDD=>ItemRDD//DStream没有排序的算子,所以要转化为rdd                          .map(pair=>(pair._2,pair._1))//将k,v对调                          .sortByKey(false))//对v进行排序                          .map(pair=>(pair._2,pair._1))//将K,V复原      .print()    ssc.start()    ssc.awaitTermination()  }}
0 0