如何在Spark Streaming中执行Running(Streaming)reduceByKey

时间:2017-07-25 10:49:02

标签: apache-spark pyspark spark-streaming

我使用Python API for Spark流中的textFileStream()方法在读取XML文件时将其映射到XML ElementTree中,然后使用"有趣的" #34; ElementTree中的项目和flatMap将它们转换为字典(键:值),然后我执行reduceByKey()来聚合每个键的计数。

因此,如果密钥是字符串网络名称,则该值可能是数据包计数。在减少时,我留下了我的字典中每个网络(密钥)的总包数。

我的问题是我在播放时遇到问题。它不是保持运行总计,而是每次重新计算计算。我认为这对我来说是一个范例问题,但我想知道是否有人可以帮我正确地传输这个分析,谢谢!

1 个答案:

答案 0 :(得分:0)

啊,解决方法是使用updateStateByKey doc这允许您将上一步的结果合并到当前步骤中的数据。换句话说,它允许您保持正在运行的计算,而不必存储整个RDD,并且每次收到数据时都必须重新计算。