У моей cassandra CF есть дата и идентификатор в качестве ключа раздела. во время запроса Я знаю только дату, поэтому я перебираю диапазон идентификаторов.Cassandra Spark Connector
Мой вопрос вращается вокруг того, как соединитель выполняет следующий код.
SparkDriver код выглядит следующим образом -
SparkConf conf = new SparkConf().setAppName("DemoApp")
.conf.setMaster("local[*]")
.set("spark.cassandra.connection.host", "10.*.*.*")
.set("spark.cassandra.connection.port", "*");
JavaSparkContext sc = new JavaSparkContext(conf);
SparkContextJavaFunctions javaFunctions = CassandraJavaUtil.javaFunctions(sc);
String date = "23012017";
for(String id : idlist) {
JavaRDD<CassandraRow> cassandraRowsRDD =
javaFunctions.cassandraTable("datakeyspace", "sample2")
.where("date = ?",date)
.where("id = ? ", id)
.select("data");
cassandraRowsRDDList.add(cassandraRowsRDD);
}
List<CassandraRow> collectAllRows = new ArrayList<CassandraRow>();
for(JavaRDD<CassandraRow> rdd : cassandraRowsRDDList){
//do transformations
collectAllRows.addAll(rdd.collect());
}
1) Прежде всего, я хотел бы спросить, если я петлю на список_идентификаторы, скажут список_идентификаторы имеют 1000 элементов, которые могут быть увеличивающимися когда-либо, будет ли это эффективное? как каждый запрос на выбор будет распространяться в кластере? Тем более, что поддерживаются связи Cassandra DB?
2) В моей программе драйверов После завершения цикла я помещаю все строки в список, а затем применяю преобразования к каждой строке и отфильтровываю дубликаты. Будет ли это также распространяться с помощью искры на кластере или это произойдет со стороны водителя.
Просьба помочь.!