我是Spark和Spark流媒体的新手,我只是迈出了第一步。看来我真的不明白如何让它发挥作用。
我有一个包含Tuple2<Integer,List<Integer>>
的JavaPairDstream。第一个Integer是传感器ID,列表是传感器读数。
我需要提取列表元素,以便计算传感器读数的平均值。
我尝试使用foreachRDD,但它对我不起作用。有人可以发布代码片段,伪代码或一些指导如何做到这一点? Java 8代码也将受到赞赏。
谢谢
盖
答案 0 :(得分:0)
您似乎想要使用flatMapValues
Scala中的伪代码,但它在Java中非常相似:
val dStream = ...
val flatten = dStream.flatMapValues(list => list)
对于每个键,输入列表中每个元素将有一行,然后您可以使用reduce来计算总和,平均值和其他指标
例如
Input:
key = 1, value = [1, 2, 3]
Output:
key = 1, value = 1
key = 1, value = 2
key = 1, value = 3