간단한 질문 : 키당 하나의 키 - 값 쌍으로 이루어진 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)}
지금 (자바 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