我正在研究Cassandra的Apache Spark,Cassandra 3.7和Datastax的Java連接器。如何使用Cassandra的Java連接器從依賴列族獲取數據
這可能是完全愚蠢和幼稚的問題要問你,但我沒有得到正確的方式來從文檔
處理它,我有2個表
卡桑德拉柱族:四季
+------------------------+
| Id | Season | isActive |
+------------------------+
| 001 | Summer | 0 |
| 002 | Fall | 0 |
| 003 | Spring | 1 |
+------------------------+
卡桑德拉柱家庭:水果
+---------------------------+
| Season | Fruit Name | Id |
+---------------------------+
| Summer | Fruit1 | 001 |
| Fall | Fruit2 | 002 |
| Spring | Fruit3 | 003 |
| Spring | Fruit4 | 004 |
| Summer | Fruit5 | 005 |
+---------------------------+
假設這個Fruits列家族很大,所以我不想加載Spark中的所有數據。
首先,我想獲得活躍的季節,在上例中是「Spring」,然後從Fruits表中獲得該Active季節的成果,但我無法使用Datastax的Cassandra Java連接器執行此操作。這可能很簡單,但我想我錯過了一些東西,我想從你那裏得到另一種看法。
直到現在我做了以下
JavaRDD<SeasonsClass> seasons RDD = CassandraJavaUtil.javaFunctions(sc)
.cassandraTable(「myKeySpaceName」, "Seasons")
.map(SeasonsClass.getSeasonsRows())
.filter(SeasonsClass.filterActiveSeasons());
JavaRDD<FruitsClass> fruitsRDD = CassandraJavaUtil.javaFunctions(sc)
.cassandraTable("myKeySpaceName", "Fruits")
.map(FruitsClass.getFruits());
但是,這使我對活躍的季節所有的水果,而不是水果。我怎樣才能得到活躍的季節水果。
我得到了活躍的季節列表,但我怎麼能得到這個活躍的季節的成果?
我使用
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.10</artifactId>
<version>1.6.0-M1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.6.2</version>
</dependency>
任何幫助,將不勝感激。
謝謝你提前
您好@gsteiner,我的數據模型與您所說的相同,只是我的表示在問題中發生了變化。我會糾正它。但即使做出這樣的改變,我想要的是先從季節CF獲得活躍季節,然後獲得那個活躍季節的水果。我如何以編程方式實現? - 謝謝 – Shashi
你好@gsteiner,我無法構建基於活躍季節的動態獲取水果的方式。我想像MySQL那樣做,預先創建一個動態查詢,然後在需要的時候在查詢中稍後綁定所需的輸入。但是不使用查詢,我想使用Spark-Cassandra-connector-for-Java。因此,如何將活動季節與Fruits CF上的查詢綁定,以僅獲取該活動季節的水果,而不是加載完整的Fruits CF並過濾。哪個Java API支持這個?任何想法? – Shashi
您可以使用Cassandra Java驅動程序,通過首先查詢季節表來查看活動季節,然後查詢水果表的哪個季節=您在第一個查詢中獲得的季節。我不知道如何用Spark連接器實現這一點,但我確信有一種方法。我還不太熟悉它。我很抱歉,我沒有回答你的問題。 – gsteiner