Spark Cassandra 连接器 3.0.0 - 如何启用 DirectJoin - Java
Spark Cassandra Connector 3.0.0 - How to enable DirectJoin - Java
我有 cassandra 3.11.9、spark 3.0.1 和 spark-cassandra-connector 3.0.0(依赖项)。我正在尝试使用 SCC 3.0.0 的直接连接,但似乎当我在下面的数据集上使用连接时,我得到了 spark 的广播散列连接。
Dataset<Row> metlistinitial = sp.read().format("org.apache.spark.sql.cassandra")
.options(new HashMap<String, String>() {
{
put("keyspace", "mdb");
put("table", "experiment");
}
})
.load().select(col("experimentid"), col("description"))
.join(dfexplist,"experimentid")
.filter(col("description").notEqual("Unidentified"));
metlistinitial.explain();
== Physical Plan ==
*(1) Project [experimentid#6, description#7]
+- *(1) BroadcastHashJoin [experimentid#6], [experimentid#4], Inner, BuildRight
:- *(1) Project [experimentid#6, description#7]
: +- *(1) Filter NOT (description#7 = Unidentified)
: +- BatchScan[experimentid#6, description#7] Cassandra Scan: mdb.experiment
- Cassandra Filters: []
- Requested Columns: [experimentid,description]
+- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true])), [id=#19]
+- LocalTableScan [experimentid#4]
我应该做些什么来启用与 cassandra 的直接连接 table?现在连接大约需要 8 分钟,我想看看直接连接是否会更快。
刚找到!看来我只需要通过添加
来激活连接器
.config("spark.sql.extensions","com.datastax.spark.connector.CassandraSparkExtensions")
在火花配置中。惊人的表现。现在只需8秒!
我有 cassandra 3.11.9、spark 3.0.1 和 spark-cassandra-connector 3.0.0(依赖项)。我正在尝试使用 SCC 3.0.0 的直接连接,但似乎当我在下面的数据集上使用连接时,我得到了 spark 的广播散列连接。
Dataset<Row> metlistinitial = sp.read().format("org.apache.spark.sql.cassandra")
.options(new HashMap<String, String>() {
{
put("keyspace", "mdb");
put("table", "experiment");
}
})
.load().select(col("experimentid"), col("description"))
.join(dfexplist,"experimentid")
.filter(col("description").notEqual("Unidentified"));
metlistinitial.explain();
== Physical Plan ==
*(1) Project [experimentid#6, description#7]
+- *(1) BroadcastHashJoin [experimentid#6], [experimentid#4], Inner, BuildRight
:- *(1) Project [experimentid#6, description#7]
: +- *(1) Filter NOT (description#7 = Unidentified)
: +- BatchScan[experimentid#6, description#7] Cassandra Scan: mdb.experiment
- Cassandra Filters: []
- Requested Columns: [experimentid,description]
+- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true])), [id=#19]
+- LocalTableScan [experimentid#4]
我应该做些什么来启用与 cassandra 的直接连接 table?现在连接大约需要 8 分钟,我想看看直接连接是否会更快。
刚找到!看来我只需要通过添加
来激活连接器.config("spark.sql.extensions","com.datastax.spark.connector.CassandraSparkExtensions")
在火花配置中。惊人的表现。现在只需8秒!