0

Mon Cassandra CF a une date et un identifiant comme clé de partition. lors de l'interrogation Je ne connais que la date, donc je boucle sur la gamme de ID.Cassandra Spark Connector

Ma question tourne autour de la façon dont le connecteur exécute le code suivant.

code SparkDriver ressemble -

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) tout ce que je voulais d'abord demander si je boucle sur le idlist, disons idlist a 1000 éléments qui pourraient augmenter jamais, sera-ce efficace? comment chaque requête de sélection est distribuée dans le cluster? Surtout comment les connexions DB de Cassandra seront maintenues?

2) Dans mon programme pilote Après boucle sur je suis en train de toutes les lignes de liste, puis appliquer des transformations à chaque ligne et filtrer les doublons. Est-ce que cela sera également distribué par une étincelle sur le groupe ou cela aura-t-il lieu aux côtés du conducteur?

aide Veuillez.!

Répondre

0

Il y a une meilleure façon de le faire fourni par connecteur étincelle cassandra. vous pouvez créer un RDD (date, id) puis appeler la fonction joinWithCassandraTable sur les colonnes date et id. Connecteur ne intelligemment toutes les données sera récupéré par les travailleurs seulement et que trop sans lecture aléatoire qui est chaque travailleur va chercher les données que pour la date et l'identifiant, il est d'avoir.