大数据之实时项目 第6天 利用redis进行去重

上篇:大数据之实时项目–第5天 (kafka消费)


1、代码编写

(1)利用redis进行去重过滤基本代码实现

  //利用redis进行去重过滤

    val filteredDstream: DStream[Startuplog] = startuplogStream.transform {
    rdd =>
      println("过滤前:"+rdd.count())
      //driver执行:周期执行
      val curdate: String = new SimpleDateFormat("yyyy-MM-dd").format(new Date)
      val jedis: Jedis = RedisUtil.getJedisClient
      val key = "dau:" + curdate
      val dauSet: util.Set[String] = jedis.smembers(key)

      val dauBC: Broadcast[util.Set[String]] = ssc.sparkContext.broadcast(dauSet)
      val filteredRDD: RDD[Startuplog] = rdd.filter {
    startuplog =>
        //executor执行
        val dauSet: util.Set[String] = dauBC.value
        !dauSet.contains(startuplog.mid)
      }
      println("过滤后:"+filteredRDD.count())
      //返回值
      filteredRDD

    }

完整代码实现

在这里插入图片描述

package com.study.gmall0315.realtime.app

import java.text.SimpleDateFormat
import java.util
import java.util.Date

import com.alibaba.fastjson.JSON
import com.study.gmall0315.common.constant.GmallConstant
import com.study.gmall0315.realtime.bean.Startuplog
import com.study.gmall0315.realtime.util.{
   MyKafkaUtil, RedisUtil}
import org.apache.kafka.clients.consumer.ConsumerRecord
import org.apache.spark.SparkConf
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.RDD
import org.apache.spark.streaming.dstream.{
   DStream, InputDStream}
import org.apache.spark.streaming.{
   Seconds, StreamingContext}
import redis.clients.jedis.Jedis

object DauApp {
   
  def main(args: Array[String]): Unit = {
   
    val sparkConf: SparkConf = new SparkConf().setAppName("dau_app").setAppName("local[*]")
    val ssc = new StreamingContext(sparkConf, 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值