如何使用Spark DataFrame计算Cassandra表上的汇总统计量?

时间:2016-02-08 15:56:11

标签: java scala apache-spark cassandra statistics

我试图获得一些Cassandra / SPARK数据的最小,最大平均值,但我需要使用JAVA。

import org.apache.spark.sql.DataFrame;
import static org.apache.spark.sql.functions.*;

DataFrame df = sqlContext.read()
        .format("org.apache.spark.sql.cassandra")
        .option("table",  "someTable")
        .option("keyspace", "someKeyspace")
        .load();

df.groupBy(col("keyColumn"))
        .agg(min("valueColumn"), max("valueColumn"), avg("valueColumn"))
        .show();

已编辑以显示正在使用的版本: 一定要把"围绕someTable和someKeyspace

3 个答案:

答案 0 :(得分:1)

我建议您查看https://github.com/datastax/spark-cassandra-connector/tree/master/spark-cassandra-connector-demos

其中包含Scala和等效Java中的演示。

您还可以查看:http://spark.apache.org/documentation.html

您可以在Scala,Java和Python版本之间进行大量示例。

我几乎100%肯定在这些链接之间,您会找到您正在寻找的内容。

如果您之后遇到任何问题,请随时更新您的问题并提出更具体的错误/问题。

答案 1 :(得分:1)

一般来说,

编译scala文件: $ scalac Main.scala

从Main.class文件创建您的java源文件: $ javap Main

以下网址提供了更多信息: http://alvinalexander.com/scala/scala-class-to-decompiled-java-source-code-classes

答案 2 :(得分:1)

只需将您的数据导入t_test并应用所需的汇总:

DataFrame

其中import org.apache.spark.sql.DataFrame; import static org.apache.spark.sql.functions.*; DataFrame df = sqlContext.read() .format("org.apache.spark.sql.cassandra") .option("table", someTable) .option("keyspace", someKeyspace) .load(); df.groupBy(col("keyColumn")) .agg(min("valueColumn"), max("valueColumn"), avg("valueColumn")) .show(); someTable分别存储表名和键空间。