Database Reference
In-Depth Information
public int num_ ;
public float avg () { return total_ / ( float ) num_ ; }
}
Function < Integer , AvgCount > createAcc = new Function < Integer , AvgCount >() {
public AvgCount call ( Integer x ) {
return new AvgCount ( x , 1 );
}
};
Function2 < AvgCount , Integer , AvgCount > addAndCount =
new Function2 < AvgCount , Integer , AvgCount >() {
public AvgCount call ( AvgCount a , Integer x ) {
a . total_ += x ;
a . num_ += 1 ;
return a ;
}
};
Function2 < AvgCount , AvgCount , AvgCount > combine =
new Function2 < AvgCount , AvgCount , AvgCount >() {
public AvgCount call ( AvgCount a , AvgCount b ) {
a . total_ += b . total_ ;
a . num_ += b . num_ ;
return a ;
}
};
AvgCount initial = new AvgCount ( 0 , 0 );
JavaPairRDD < String , AvgCount > avgCounts =
nums . combineByKey ( createAcc , addAndCount , combine );
Map < String , AvgCount > countMap = avgCounts . collectAsMap ();
for ( Entry < String , AvgCount > entry : countMap . entrySet ()) {
System . out . println ( entry . getKey () + ":" + entry . getValue (). avg ());
}
Search WWH ::




Custom Search