Apache spark 用于移动平均线计算的Spark Streaming Reduce ByKeyandWindow
我需要根据运动数据流计算移动平均值。我将有一个滑动窗口大小和幻灯片作为输入,需要计算移动平均值并绘制它 我了解如何使用文档中的reduceByKeyAndWindow来获得滚动总和。我也知道如何获得每个窗口的计数。我不清楚如何使用这些来获得平均值。我也不知道如何在ReduceByKeyAnd窗口中定义平均计算器函数。任何帮助都将不胜感激 下面是示例代码Apache spark 用于移动平均线计算的Spark Streaming Reduce ByKeyandWindow,apache-spark,pyspark,spark-streaming,Apache Spark,Pyspark,Spark Streaming,我需要根据运动数据流计算移动平均值。我将有一个滑动窗口大小和幻灯片作为输入,需要计算移动平均值并绘制它 我了解如何使用文档中的reduceByKeyAndWindow来获得滚动总和。我也知道如何获得每个窗口的计数。我不清楚如何使用这些来获得平均值。我也不知道如何在ReduceByKeyAnd窗口中定义平均计算器函数。任何帮助都将不胜感激 下面是示例代码 def createContext(): sc = SparkContext(appName="PythonSparkStreaming
def createContext():
sc = SparkContext(appName="PythonSparkStreaming")
sc.setLogLevel("ERROR")
ssc = StreamingContext(sc, 5)
ssc.setLogLeve("ERROR")
# Define kinesis Consumer
kinesisStream = KinesisUtils.createStream(ssc,
appName,
streamName,
endpointUrl,
regionName,
InitialPositionInStream.LATEST,
10)
# Count number of tweets in a batch
count_this_batch = kinesisStream.count().map(lambda x: ('Count this batch: %s' % x))
# Count by windowed time period
count_windowed = kinesisStream.countByWindow(60, 5).map(lambda x: ('Counts total (One minute rolling count): %s' % x))
sum_window = kafkaStream.reduceByKeyAndWindow(lambda x, y: x + y, lambda x, y: x - y, 60, 5)
return ssc
ssc = StreamingContext.getOrCreate('/tmp/checkpoint_v06', lambda: createContext())
ssc.start()
ssc.awaitTermination()