当前位置: 首页 > 知识库问答 >
问题:

来自Flink训练教程的一个问题:longridessolution.scala

米楚青
2023-03-14
override def processElement(ride: TaxiRide,
                                context: KeyedProcessFunction[Long, TaxiRide, TaxiRide]#Context,
                                out: Collector[TaxiRide]): Unit = {
      val timerService = context.timerService
      if (ride.isStart) {
        // the matching END might have arrived first; don't overwrite it
        if (rideState.value() == null) {
          rideState.update(ride)
        }
      }
      else {
        rideState.update(ride)
      }

      timerService.registerEventTimeTimer(ride.getEventTime + 120 * 60 * 1000)
    }

一旦水印到达时间戳,计时器就会触发

    override def onTimer(timestamp: Long,
                         ctx: KeyedProcessFunction[Long, TaxiRide, TaxiRide]#OnTimerContext,
                         out: Collector[TaxiRide]): Unit = {
      val savedRide = rideState.value

      if (savedRide != null && savedRide.isStart) {
        out.collect(savedRide)
      }
      rideState.clear()
    }

问题是:如果结束记录在先,然后基于逻辑,它不会更新骑行状态(相关键),然后2小时后触发,然后它不会收集,不会发出记录,但是如果这个记录符合我们的要求呢?==>记录开始时间发生在2个多小时前?我认为应该有更多的逻辑来处理这件事

共有1个答案

陈业
2023-03-14

如果结束记录是在开始记录之前处理的,那么开始记录可能很晚才到达,当它到达时,它提供了这段旅程持续了两个多小时的证据。

但是,这个练习的目标不是找到所有持续时间超过两个小时的游乐项目,而是实时地标记那些现在应该结束的游乐项目(因为它们在两个多小时前就开始了),但还没有结束。由于你询问的这些游乐项目已经结束,是否值得提醒是有争议的。

您提出了一个有趣的观点,可能应该添加到练习讨论页面中。

 类似资料:
  • 我正在尝试使用https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html从flink kafkaconsumer流式传输数据 在这里,我的KAFKA是Kerberos安全的,并且启用了SSL。 我该如何解决这件事?有没有别的办法通过KRB5?

  • 本文向大家介绍tensorflow训练中出现nan问题的解决,包括了tensorflow训练中出现nan问题的解决的使用技巧和注意事项,需要的朋友参考一下 深度学习中对于网络的训练是参数更新的过程,需要注意一种情况就是输入数据未做归一化时,如果前向传播结果已经是[0,0,0,1,0,0,0,0]这种形式,而真实结果是[1,0,0,0,0,0,0,0,0],此时由于得出的结论不惧有概率性,而是错误的

  • 我正在训练一个LSTM,以便将时间序列数据分类为2类(0和1)。我在驱动器上有巨大的数据集,其中0类和1类数据位于不同的文件夹中。我试图通过创建一个Dataset类并将DataLoader包装在它周围来批量使用LSTM。我必须做整形等预处理。这是我的密码 ' `我在运行此代码时遇到此错误 RuntimeError:Traceback(最后一次调用):文件“/usr/local/lib/python

  • 我有一个多类数据集,正在尝试使用对每个类进行分类。 因此,我想知道如何在每个类上训练<code>OneClassSVM()

  • 我遵循Gilbert Tunner教程使用Tensorflow 2进行对象检测,但在使用: Traceback(最近的调用最后): 文件"model_main_tf2.py",第113行,在tf.compat.v1.app.run()文件"C:\用户\anaconda3\envs\tenorflow 2\lib\site-包\tenorflow\python\平台\app.py",第40行,在运行

  • 利用 Polar 应用程式、Polar Flow 应用程式以及 Polar Flow 网络服务获得有关您的训练的即时分析,深入了解您的训练。 M600 上的训练总结 在每次训练后,您将在您的手表上收到您的即时训练总结。 总结中显示的信息取决于运动内容。可提供的细节包括: 时间长度:训练时长 距离(如适用于您的运动):指训练中已完成的距离。 平均心率:指训练期间您的平均心率。 最大心率:指训练期间您