记录一下SparkStreaming中因为使用redis做数据验证而导致数据结果不对的问题

业务背景:

需要通过redis判断当前用户是否是新用户。当出现新用户后,会将该用户放入到redis中,以标明该用户已不是新用户啦。

 

出现问题:

发现入库时,并没有新用户入库,但我看了数据了,确实应该是有新数据

 

问题原因:

因为在判断新用户这一步是在flatmap这一步做的。

flatmap后的RDD,后边会被两个action使用。

问题是,因为是执行两次action时,flatmap也会执行两次。

而最终入库的代码是在第二个RDD中。结果就是永远不会存在最新用户啦

 

解决方案:

flatmap后,做一下cache,这样就不会多次执行flatmap

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值