我有一个 DStream [String,(Double,Double)] ,我试图通过使用获取基于键:字符串的运行总计updateStateByKey ,但我无法弄清楚如何这样做,任何人都可以帮我解决这个问题。以下是我的代码的要点,
a,2,1,2,2
b,2,4,8,8
c,5,1,5,5
d,2,6,12,12
e,4,3,12,12
为了更好地解释,继续使用代码,对于DStream的多个窗口,我需要输出如下,
第一个窗口 - > [(A,2,1)(B 2,4)(C,5,1)(d,2,6)(即,4,3)]
输出 - >
a,3,4,12,14
b,5,2,10,18
c,6,1,6,11
d,3,6,18,30
第二个窗口 - > [(A,3,4)(B,5,2)(C,6,1)(d,3,6)]
输出
b,6,6,36,54
e,2,3,6,18
第3个窗口 - > [(B,6,6)(即,2,3)]
输出
body
我一直试图让它工作,但有些我最终会在输出的前三列中得到奇怪的值,例如0,或者再次使用相同的键值对来更新总计。
我是Spark Streaming的新手,所以有人可以帮我弄清楚如何获得上述输出的逻辑吗?
P.s:我为我的解释道歉。