Spark-Streaming 记录比较
Posted
技术标签:
【中文标题】Spark-Streaming 记录比较【英文标题】:Spark-Streaming Comparison of records 【发布时间】:2018-05-09 11:36:20 【问题描述】:如何将接收到的记录与 spark 结构化流中相同键的先前记录进行比较。这可以使用 groupByKey 和 mapGroupWithState 来完成吗?
groupByKey(user)
mapGroupsWithState(GroupStateTimeout.NoTimeout)(updateAcrossEvents)
//来自 Spark Definitive Guide 的示例代码
当我们执行上述操作时,又出现了一个问题 我认为不会在收到记录时维护记录序列,它将在工作节点之间进行分区和存储,当我们应用 groupByKey 时会发生随机播放,并且具有相同键的所有记录都将位于同一个工作节点中,但不会保持顺序。
【问题讨论】:
【参考方案1】:您可以为此使用 mapGroupsWithState。您必须将之前的记录保存在组状态中,并将其与传入记录进行比较。
您使用什么作为来源?如果源是 Kafka,您将必须按您正在使用的键对 Kafka 主题进行分区。
【讨论】:
以上是关于Spark-Streaming 记录比较的主要内容,如果未能解决你的问题,请参考以下文章
流式计算助力实时数据处理spark-streaming入门实战
java spark-streaming接收TCP/Kafka数据