簡單的問題:任何實際上有效的方法來獲得由每個鍵一個鍵值對構成的dstream?僞代碼:Spark Streaming在PairDStream中獲得每個鍵的一個元素
myKeyValueDStream = {(A,miao-1-3),
(A,miao-2-4),
(A,miao-5-6),
(B,bau-1-2),
(B,bau-3-4),
(C,cip-1-2),
(C,cip-3-4)}
singleLineDStream = myKeyValueDStream.takeOneElementPerKey();
//I don't care which one; the first one would be fine
singleLineDStream.print() // {(A,miao-1-3),(B,bau-1-2),(C,cip-1-2)}
我的解決方案,現在(道歉的Java 7)的:
JavaPairDstream<String,String[]> singleLineDStream = pairdDstream.reduceByKey(new Function2<String[],String[],String[]>(){
@Override
public String[] call(String[] arg0, String[] arg1) throws Exception {
return arg0;
}
});
是否有更好的方式,採取一個元素爲每個鍵?使用任何你想要的解決方案的語言。
'reduceByKey'應該要走的路。 – maasg