spark streaming scala -统计热门搜索词

原创 2018年04月17日 09:56:51

本文主要通过spark streaming实现基于热门搜索词的统计

import org.apache.spark.SparkConf
import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.Seconds

/**
 * @author jhp
  *         统计热门搜索词
 */
object WindowHotWord {
  //数据格式: 手机
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
        .setMaster("local[2]")  
        .setAppName("WindowHotWord")
    val ssc = new StreamingContext(conf, Seconds(1))
    
    val searchLogsDStream = ssc.socketTextStream("spark1", 9999)  
    val searchWordsDStream = searchLogsDStream.map { _.split(" ")(1) }  
    val searchWordPairsDStream = searchWordsDStream.map { searchWord => (searchWord, 1) }  
    //使用reduceByKeyAndWindow
    val searchWordCountsDSteram = searchWordPairsDStream.reduceByKeyAndWindow(
        (v1: Int, v2: Int) => v1 + v2, 
        Seconds(60), 
        Seconds(10))  
    //转换为RDD
    val finalDStream = searchWordCountsDSteram.transform(searchWordCountsRDD => {
      val countSearchWordsRDD = searchWordCountsRDD.map(tuple => (tuple._2, tuple._1))  
      val sortedCountSearchWordsRDD = countSearchWordsRDD.sortByKey(false)  
      val sortedSearchWordCountsRDD = sortedCountSearchWordsRDD.map(tuple => (tuple._1, tuple._2))
      
      val top3SearchWordCounts = sortedSearchWordCountsRDD.take(3)
      for(tuple <- top3SearchWordCounts) {
        println(tuple)
      }
      
      searchWordCountsRDD
    })
    
    finalDStream.print()
    //启动
    ssc.start()
    ssc.awaitTermination()
  }
  
}

赵强老师:大数据从入门到精通(22)Spark Streaming

-
  • 1970年01月01日 08:00

第105课: Spark Streaming电商广告点击综合案例在线点击统计实战

第105课:  Spark Streaming电商广告点击综合案例在线点击统计实战 语言选择:Java中大规模项目开发(京东) Scala看Spark源代码 数据来自于kafka 1,复制代码 Spa...
  • duan_zhihua
  • duan_zhihua
  • 2016-05-18 21:16:23
  • 1700

第111讲: Spark Streaming电商广告点击综合案例在线实现每个Province点击排名Top5广告

package com.dt.spark.SparkApps.sparkstreaming; import java.sql.Connection; import java.sql.Dri...
  • qq_21234493
  • qq_21234493
  • 2016-06-05 20:12:07
  • 1579

Spark Streaming实战对论坛网站动态行为pv,uv,注册人数,跳出率的多维度分析

论坛数据运行代码自动生成,该生成的数据会作为Producer的方式发送给Kafka,然后SparkStreaming程序会从Kafka中在线Pull到论坛或者网站的用户在线行为信息,进而进行多维度的在...
  • m0_37739193
  • m0_37739193
  • 2017-07-06 17:41:43
  • 2081

java,scala之spark streaming 版本的单词统计(通过监听端口)

ubuntu安装netcat Ubuntu上默认安装的是netcat-openbsd,而不是经典的netcat-traditional.  网上例子很多都是以netcat-traditiona...
  • zwyjg
  • zwyjg
  • 2017-01-08 22:20:29
  • 1022

第105讲 Spark Streaming电商广告点击综合案例在线点击统计实战项目第一天

本讲的目标是广告点击流进来,我们对它进行统计。首先实现对数据进行统计,后续十讲我们再做其它操作。 1:spark用scala开发,只能用java与数据库交互,用Hbase交互的时候,Spark在线上生...
  • qq_21234493
  • qq_21234493
  • 2016-05-23 06:42:10
  • 1325

使用Spark计算PV、UV

日志字段格式: id,ip,url,ref,cookie,time_stamp 把日志文件放到HDFS。仅取了1000行。 hadoop fs -put 1000_log hdfs://localho...
  • ozhaohuafei
  • ozhaohuafei
  • 2015-01-28 14:06:06
  • 6353

Scala和Java二种方式实战Spark Streaming开发

在这里我主要借鉴课上老师讲的以及官网的API来进行简单的Spark Streaming的开发:一:java形式:1.我们可以总结一下步骤:第一步:创建SparkConf对象 第二步:创建SparkS...
  • erfucun
  • erfucun
  • 2016-08-18 16:12:47
  • 2968

第97讲:使用Spark Streaming+Spark SQL来在线动态计算电商中不同类别中最热门的商品排名,

package com.dt.streaming import org.apache.spark.SparkConf import org.apache.spark.sql.Row import o...
  • qq_21234493
  • qq_21234493
  • 2016-05-15 22:56:03
  • 834

reduceByKeyAndWindow基于滑动窗口的热点搜索词实时统计(Scala版本)

package SparkStreaming import org.apache.spark.SparkConf import org.apache.spark.streaming.{Se...
  • accptanggang
  • accptanggang
  • 2016-11-08 13:41:42
  • 3382
收藏助手
不良信息举报
您举报文章:spark streaming scala -统计热门搜索词
举报原因:
原因补充:

(最多只允许输入30个字)