spark之实时统计

spark之实时统计

这篇博客其实和Spark之Spark Streaming处理文件流数据区别不是特别的大,权可以看作为毕业设计作准备的,使用了线程和通信的模式处理文件流,最后对5秒内的输入数据进行统计,代码如下

package openClass

import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}

object kugouTopN {
  def main(args: Array[String]): Unit = {
    //local[2]两个线程,一个计算,一个接受
    val conf = new SparkConf().setAppName("kugoutopN").setMaster("local[2]")
    val sc = new SparkContext(conf)
    //创建streaming
    val ssc = new StreamingContext(sc, Seconds(5))

    sc.setLogLevel("WARN")

    //创建接收
    val lines: ReceiverInputDStream[String] = ssc.socketTextStream("127.0.0.1", 8888)
    //处理操作
    val map: DStream[(String, Int)] = {
      lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).
    }

    map.print()
    //开启线程,保持数据不断接收
    ssc.start()
    //等待终止
    ssc.awaitTermination()
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值