首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure流分析mapWithState的替代方案

问Azure流分析mapWithState的替代方案
EN

Stack Overflow用户
提问于 2019-03-22 21:08:14
回答 1查看 75关注 0票数 1

在Analytics中是否有一种方法可以像Sparks mapWithState那样使用自定义状态创建一些聚合?

下面是我的场景:

我有来自IoT设备的数据,其中包含以下字段:

  • DeviceId
  • 位置
  • 价值

数据可能会出现故障。

每当给定DeviceId的新数据包到达时,我都希望输出该设备的最后n个位置和值。喜欢

输入:{ "DeviceId": "A", "Position": 10, "Value": 100}

输出:{ "DeviceId": "A", "Positions": [10], "Value": [100]}

下一个输入:{ "DeviceId": "A", "Position": 11, "Value": 101}

输出:{ "DeviceId": "A", "Positions": [10, 11], "Value": [100, 101]}

下一个输入:{ "DeviceId": "A", "Position": 9, "Value": 99}

输出:{ "DeviceId": "A", "Positions": [9, 10, 11], "Value": [9, 100, 101]}

在Spark结构化流中,我将使用groupBy和mapWithState实现这一点。有没有办法在ASA中实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-03-26 21:00:46

在ASA中,可以使用以下方法之一执行此操作:

  • 如果您有一个可用于时间戳的额外列,则可以使用时间戳BY,ASA将重新排序事件。然后,您可以使用迟滞来获取这个特定设备的最新事件。
  • 没有任何时间戳列,您可以创建科莱托普操作符,并根据“位置”列对事件进行排序。
  • 或者,您可以使用描述这里的用户定义集合(UDA)实现自己的有状态逻辑。

如果您需要帮助实现这三种方法中的一种,请告诉我。我很乐意提供更多的细节。

谢谢,

JS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55307795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档