0

У моей 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) В моей программе драйверов После завершения цикла я помещаю все строки в список, а затем применяю преобразования к каждой строке и отфильтровываю дубликаты. Будет ли это также распространяться с помощью искры на кластере или это произойдет со стороны водителя.

Просьба помочь.!

ответ

0

Существует лучший способ сделать это при помощи разъема искры cassandra. вы можете создать rdd (date, id), а затем вызвать функцию joinWithCassandraTable в столбцах date и id. Соединитель делает это умно, все данные будут получены только рабочими, и это тоже без тасования, которое каждый рабочий будет извлекать данные только для даты и идентификатора, которые он имеет.

 Смежные вопросы

  • Нет связанных вопросов^_^