计算每个pyspark Dstream中的元素数量

问题描述

我正在寻找一种方法计算我在pyspark中创建的Dstream中每次收到的元素数量(或RDD数量。如果您知道可以帮助我的方法,我将很高兴。 谢谢。

解决方法

我使用下面的代码,给每个数据加一个,然后对那些计数。 就像简单的字数统计一样,我对每个数据进行计数而不是字数。

我使用下面的代码来做到这一点,但是如果你们有其他解决方案,可以随时添加;谢谢。

from pyspark.streaming import StreamingContext
from pyspark import SparkContext

# Create a local StreamingContext with two working thread and batch interval of 1 second
sc = SparkContext('local[2]','Networkcount')
ssc = StreamingContext(sc,10)

# Create a DStream that will connect to hostname:port,like localhost:7777
data_received = ssc.socketTextStream("127.0.0.1",7776)

lines = data_received.map(lambda data: 1)
count = lines.reduce(lambda x,y: x + y)
count.pprint()