代码之家  ›  专栏  ›  技术社区  ›  David Cunningham

Pyspark结构化流媒体-来自以前记录的数据

  •  0
  • David Cunningham  · 技术社区  · 1 年前

    我有一个用例,其中我有一系列带有gps坐标的记录。

    Schema:
     latitude: Float
     longitude: Float
    

    我想使用pyspark实时计算我的当前记录和以前的记录之间的距离,作为数据帧中的新列(例如distance Traveled)。我知道我可以用地球物理学来计算距离,但我不知道如何从以前的记录中获得经纬度。

    输出应该看起来像

    Schema:
      latitude: Float
      longitude: Float
      distanceTraveled: Float
    

    我发现唯一有效的解决方案是将条目存储在某种文件中,就像泡菜一样,然后每当我得到新条目时,就会更新记录。然而,这似乎不适用于EMR Serverless,因为这些文件在运行之间不会持久化。这似乎也不可能是正确的方式。

    理想情况下,我还希望能够扩展我的解决方案,这样我不仅可以从上一次输入开始做同样的事情,而且可以在一段时间内做同样的工作(比如在最后一个小时)。

    0 回复  |  直到 1 年前