假设我的数据集已经排序,如下所示:
[
[100.0, 1],
[105.0, 1],
[111.0, 1],
... so on
]
中位数等于105.0!所以在java中,我得到了包含数据的dataset对象:
DataSet<Tuple2<Double, Integer>> data = ...
这是计算元组中第一个元素的中位数的正确方法吗
public double getMedian() throws Exception{
DataSet<Tuple2<Double, Integer>> data = ...
List<Tuple2<Double, Integer>> dataList = data.collect();
double median = 0;
// calculate median
int itemCount = dataList.size();
if (itemCount % 2 == 0)
median = ((double) dataList.get(itemCount/2).f0 + (double) dataList.get(itemCount /2 - 1).f0)/2;
else
median = (double) dataList.get(itemCount/2).f0;
return median;
}
我的意思是,这样在集群上运行代码好吗?
暂无答案!
目前还没有任何答案,快来回答吧!