Я использую:
- cassandra 2.1.12 - 3 узла
- искра 1.6 - 3 узла
- искра кассандра разъем 1,6
Я использую токены в Кассандре (не vnodes).
Я пишу простую работу по чтению данных из таблицы Cassandra и отображению ее таблицы подсчета имеет около 70 миллионов строк, и это занимает 15 минут.
Когда я читаю данные и проверяю, количество разделов RDD составляет где-то около 21000, что слишком велико. Как контролировать это число?
Я пробовал splitCount
, split.size.in.mbs
, но мне показывают такое же количество разделов.
Какие-либо предложения?
import org.apache.spark.{SparkContext, SparkConf}
import com.datastax.spark.connector._
import org.apache.spark.sql.cassandra.CassandraSQLContext
import org.apache.spark.sql.cassandra._
import org.apache.spark.sql
import java.sql.DriverManager
import java.sql.Connection
object Hi {
def main(args: Array[String])
{
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "172.16.4.196").set("spark.cassandra.input.split.size_in_mb","64")
val sc = new SparkContext(conf)
val rdd = sc.cassandraTable("cw","usedcareventsbydatecookienew")
println("hello world" + rdd.partitions)
println("hello world" + rdd.count)
}
}
это мой код для справки. Я запускаю nodetool compact, теперь я могу контролировать количество разделов, но все же весь процесс занимает почти 6 минут, что, на мой взгляд, слишком много, любые предложения по улучшению