【发布时间】:2015-06-07 08:22:36
【问题描述】:
我是 Spark 的新手,我想了解在调用 updateStateByKey 之前是否需要按键聚合 DStream 数据?
我的应用程序基本上使用 Spark Streaming 计算每秒的单词数,我在执行如下状态完整更新之前执行几个映射操作,
val words = inputDstream.flatMap(x => x.split(" "))
val wordDstream = words.map(x => (x, 1))
val stateDstream = wordDstream.updateStateByKey(UpdateFunc _)
stateDstream.print()
说在第二次 Map 操作之后,由于不同的分区,相同的键(单词)可能会出现在工作节点上,所以我假设 updateStateByKey 方法在内部将键值打乱并聚合为 Seq[Int] 并调用 updateFunc。我的假设正确吗?
【问题讨论】:
标签: apache-spark spark-streaming