使用Java中的Spark Dataframe的直方图

时间:2017-07-18 21:05:16

标签: java apache-spark spark-dataframe

是否可以使用Dataset<Row>表中的Java 2.1生成直方图数据帧?

1 个答案:

答案 0 :(得分:1)

  1. 使用toJavaRDD()。map()函数将数据集转换为JavaRDD,其中Datatype可以是Integer,Double等。
  2. 再次使用mapToDouble函数将JavaRDD转换为JavaDoubleRDD。
  3. 然后您可以应用直方图(int bucketcount)来获取数据的直方图。
  4. 示例: 我有一个火花的表格,表格名为'country',列为'n_nationkey',这是整数,那么我就是这样做的:

    String query = "select n_nationkey from nation" ;
    Dataset<Row> df = spark.sql(query);
    JavaRDD<Integer> jdf = df.toJavaRDD().map(row -> row.getInt(0));
    JavaDoubleRDD example = jdf.mapToDouble(y -> y);
    Tuple2<double[], long[]> resultsnew = example.histogram(5);
    

    如果列具有double类型,您只需将以下内容替换为:

    JavaRDD<Double> jdf = df.toJavaRDD().map(row -> row.getDouble(0));
    JavaDoubleRDD example = jdf.mapToDouble(y -> y);
    Tuple2<double[], long[]> resultsnew = example.histogram(5);