1
在我的星火流應用程序,我收到了以下數據類型:星火流:使用對象作爲重點「mapToPair」
{
"timestamp": 1479740400000,
"key": "power",
"value": 50
}
我想按timestamp
和key
和聚集value
領域。
有沒有什麼方法通過對象而不是字符串鍵控?我想要做類似如下的事情:
JavaPairDStream<AggregationKey, Integer> aggregation = data.mapToPair(
(PairFunction<DataObject, AggregationKey, Integer>) data -> {
return new Tuple2<>(new AggregationKey(data), data.value);
}
).reduceByKey(
(Function2<Integer, Integer, Integer>) (value1, value2) -> {
return value1 + value2;
}
);
但是這種嘗試分組的方式在Spark中不起作用。
爲了解決這個問題,我在做臨時工new AggregationKey(data).toString()
。我不知道這是否是一個可接受的解決方案。