问题描述
我正在寻找一种方法来计算我在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()