如何在java中使用Apache spark计算中值和模式?

时间:2015-08-10 13:58:19

标签: java apache-spark apache-spark-mllib

此页面包含均值,最大值,方差等,但不包含中位数和模式。https://spark.apache.org/docs/1.1.1/mllib-statistics.html

我已使用此代码解析数据

JavaRDD<Vector> parseData = data .map(new Function<String, Vector>() { 
  /** * */
  private static final long serialVersionUID = 1L;
  public Vector call(String line) {
    // del = " " String[] sArray = line.trim().split(delimiterFinal);
    double[] values = new double[sArray.length];
    for (int i = 0; i < sArray.length; i++) {
      if (columnsSet.contains(i)) {
         values[i] = Double.parseDouble(sArray[i]);
      }
    }
  return Vectors.dense(values);
} 

1 个答案:

答案 0 :(得分:0)

是的,同意,你必须自己编码(尽管很好运动)。中位数例如非常简单,您可以只排序并找到中间点(检查中位数定义以获取详细信息)然后您有两种情况,一种是拆分恰好发生在一个点(nvalues %% 2 = 1)那么那就是value或second(nvalues %% 2 = 0)则是这两个值的平均值。

模式更简单,只是显示最多的值。