Spark Cassandra连接器-输入提取大小

时间:2019-03-06 15:10:35

标签: apache-spark cassandra datastax datastax-java-driver spark-cassandra-connector

我正在使用Cassandra 3.11.4和Spark 2.3.3。当我用 joinWithCassandraTable 查询很多分区键(持续3个月,分区键= 3 * 30 * 24 * 60个分区键)时,我在cassandra debug.log ,例如:

<SELECT * FROM event_keyspace.event_table WHERE partitionkey1, partitionkey2 = value1, value2 AND column_key = column_value1 LIMIT 5000>, time 599 msec - slow timeout 500 msec 

<SELECT * FROM event_keyspace.event_table WHERE partitionkey1, partitionkey2 = value5, value6 AND column_key = column_value5 LIMIT 5000>, time 591 msec - slow timeout 500 msec/cross-node

我在 joinWithCassandraTable 之前使用 repartitionByCassandraReplica

我看到磁盘IO达到100%。如果我更改以小时为分区键而不是分钟为分区键的数据模型,则会创建不适用的大分区。

我怀疑此限制5000可能会导致该问题,但是即使我设置了 input.fetch.size_in_rows ,此日志也没有更改。

sparkConf.set("spark.cassandra.input.fetch.size_in_rows", "20000");

如何设置此 LIMIT 5000 条款?

1 个答案:

答案 0 :(得分:0)

您是否尝试减小spark.cassandra.input.split.size?因为所有数据都属于同一分区。