zoukankan      html  css  js  c++  java
  • 记录一下SparkStreaming中因为使用redis做数据验证而导致数据结果不对的问题

    业务背景:

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

    出现问题:

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

    问题原因:

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

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

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

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

    解决方案:

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

  • 相关阅读:
    mac下配置openCV
    K最短路 A*算法
    KMP算法
    北航复试机试题
    1385重建二叉树
    二维数组中的查找
    简单的单向链表
    Getting Started with WebRTC [note]
    我的c漏洞
    PeerConnection
  • 原文地址:https://www.cnblogs.com/hark0623/p/4674089.html
Copyright © 2011-2022 走看看