Разъем Spark Cassandra - входной размер выборки - PullRequest
2 голосов
/ 06 марта 2019

Я использую Cassandra 3.11.4 и Spark 2.3.3.Когда я запрашиваю множество ключей раздела (в течение 3 месяцев, когда минута - это ключ раздела = 3 * 30 * 24 * 60 ключей раздела) с помощью joinWithCassandraTable , я вижу множество журналов медленного времени ожидания в 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

Я использую repartitionByCassandraReplica перед joinWithCassandraTable .

Я вижу, что дисковый ввод-вывод идет в100%.Если я изменю модель данных, в которой вместо ключа используется час, а не минуты, будут созданы большие разделы, что неприменимо.

Я подозреваю, что это ограничение 5000 может быть причиной этого, но даже я установил input.fetch.size_in_rows этот журнал не изменился.

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

Как мне установить это LIMIT 5000 предложение?

1 Ответ

0 голосов
/ 22 марта 2019

Вы пытались уменьшить размер spark.cassandra.input.split.size?Потому что все данные попадают под один и тот же раздел.

...