用例:我有消息有messageId,多个消息可以有相同的消息ID,这些消息存在于由messageId分区的流管道(如kafka)中,所以我确保所有具有相同messageId的消息都将在同一个消息中分区。
所以我需要编写一个应该缓冲消息一段时间(比如说1分钟)的作业,然后将具有相同messageId的所有消息组合成单个大消息。
我认为可以使用spark Datasets和spark sql(或其他东西?)来完成。但我找不到任何关于如何为给定的消息ID存储消息一段时间的示例/文档,然后对这些消息进行聚合。
答案 0 :(得分:0)
我认为您正在寻找的是android.os.FileUriExposedException: file:///storage/emulated/0/test.txt exposed beyond app through Intent.getData()。 Spark有Spark Streaming可以链接到Spark Streaming Context。
这里是一个非常基本的示例,它将在1分钟的间隔内为给定主题集中的所有消息创建RDD,然后通过消息ID字段对它们进行分组(您的值序列化器必须公开这样的{当然是{1}}方法。
getMessageId
还有其他几种方法可以在流API中对消息进行分组。查看文档以获取更多示例。