【发布时间】:2017-01-05 05:51:45
【问题描述】:
我正在研究 Apache Spark、Cassandra 3.7 和 Datastax 的用于 Cassandra 的 Java 连接器。
这对你来说可能是完全愚蠢和幼稚的问题,但我没有从文档中得到正确的处理方法
我有两张桌子
Cassandra 列族:四季
+------------------------+
| Id | Season | isActive |
+------------------------+
| 001 | Summer | 0 |
| 002 | Fall | 0 |
| 003 | Spring | 1 |
+------------------------+
Cassandra 列族:水果
+---------------------------+
| Season | Fruit Name | Id |
+---------------------------+
| Summer | Fruit1 | 001 |
| Fall | Fruit2 | 002 |
| Spring | Fruit3 | 003 |
| Spring | Fruit4 | 004 |
| Summer | Fruit5 | 005 |
+---------------------------+
假设这个 Fruits 列族很大,所以我不想在 Spark 中加载所有数据。
首先,我想获取活跃季节,在上面的示例中是“春天”,然后从 Fruits 表中获取该活跃季节的果实,我无法使用 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>
任何帮助将不胜感激。
提前谢谢你
【问题讨论】:
标签: java apache-spark cassandra spark-cassandra-connector