我编写了一个与updateStateByKey一起使用的简单函数,以便查看问题是否是因为我的updateFunc。我认为这一定是由于其他原因造成的。我在--master local [4]上运行它。
val updateFunc = (values: Seq[Int], state: Option[Int]) => {
Some(1)
}
val state = test.updateStateByKey[Int](updateFunc)
过了一会儿,有警告,任务规模不断增加。
WARN TaskSetManager:阶段x包含一个非常大的任务(129 KB)。建议的最大任务大小为100 KB。
WARN TaskSetManager:阶段x包含一个非常大的任务(131 KB)。建议的最大任务大小为100 KB。
答案 0 :(得分:0)
您的广告系列中有越来越多的不同密钥,每个密钥都会导致1
的新副本添加到您的州。
当前updateStateByKey扫描每个批处理间隔中的每个键,即使该键没有数据也是如此。这导致updateStateByKey的批处理时间随着状态键的数量而增加,即使数据速率保持不变。