2016-02-08 79 views
-3

我試圖獲得一些Cassandra/SPARK數據的最小,最大平均值,但我需要用JAVA來完成。如何使用Spark DataFrame計算Cassandra表的彙總統計信息?

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

+2

這看起來很像試圖讓別人爲你寫代碼。該代碼有各種部分。你知道如何在Java中做什麼,以及哪些是你堅持的? –

回答

1

只需將您的數據導入爲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(); 

其中someTablesomeKeyspace分別存儲表名和keyspace。

+0

我試過這個,但是我得到一個錯誤:是這行'.options(「keyspace」,model)'它說找不到符號變量模型並且在這行' – mithrix

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%確定那些鏈接之間,你會發現你正在尋找什麼。

如果您在此之後遇到任何問題,請隨時用更具體​​的錯誤/問題更新您的問題。