Spark-Cassandra-Connector是否可以知道整个Cassandra表是否被选择用于与Dataframe的DirectJoin?

mgdq6dx1  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(171)

我正在使用Spark-Cassandra-Connector(SCC)的DirectJoin来连接 Dataframe 与cassandra表,然后执行计数。当我连接表中的所有数据时,连接速度(5分钟)比连接表中的3/4数据时(13分钟)要快。SCC是否可以知道我是否已经选择了所有分区键来执行连接?
我的猜测是,由于我没有使用RepartitionByCassandraReplica,有时一些分区键被发送到正确的节点,而其他时候没有。所以,也许5分钟只是“运气”?

编辑

在上述两种情况下,DirectJoin始终处于“打开”状态!

kcrjzv8t

kcrjzv8t1#

直接联接为每个联接键发出一个查询。这就是为什么在没有直接联接的情况下两个表的完全联接速度更快的原因。默认情况下,如果大小比率超过90%,则禁用直接联接(directJoinSetting=auto,directJoinSizeRatio=0.9)。
您还可以通过设置directJoinSetting=on强制直接加入,通过设置directJoinSetting=off禁用直接加入,或者通过设置directJoinSizeRatio=x调整阈值。https://github.com/datastax/spark-cassandra-connector/blob/master/doc/reference.md#cassandra-datasource-table-options有关详细信息,请访问www.example.com。

相关问题