【发布时间】:2019-04-12 09:05:44
【问题描述】:
我有一个 Kafka 主题,每分钟有 10K 个事件,还有一个 Spark Streaming 2.3 消费者,在 scala 中编写用于接收和摄取到 Cassandra。传入事件是具有“用户 ID”字段的 JSON。但是,如果再次出现具有相同用户 ID 的事件(即使消息正文不同),我仍然不希望将其引入 Cassandra。 Cassandra 表每分钟和每天都在增长,因此通过将表检索到内存中的 spark 数据帧中来查找到目前为止遇到的所有用户 ID 是不可能的,因为表会变得很大。我怎样才能最好地只摄取独特的记录?
updateStateByKey 可以工作吗?状态可以维持多久?因为如果一年后出现相同的用户 ID,我不想将其引入 Cassandra。
【问题讨论】:
标签: scala cassandra apache-kafka spark-streaming