2017-08-17 1 views
0

J'ai le code suivant.Est-ce que étincelle charge des données entières de cassandra

Dataset<Row> kpiDF = spark.read().format("org.apache.spark.sql.cassandra") 
.options(new HashMap<String, String>(){{put("keyspace",keyspace);put("table", table);}}) 
.load() 
.filter("kpi='test'") 

ma question est, où cela va charger toutes les données de la table cassandra, puis appliquer le filtre ou il ne chargera des données KPI « test » de Kassandra?

Répondre

1

Si la colonne kpi est la clé de partition, le connecteur spark-cassandra ne lit que les enregistrements correspondants.

Par défaut, le push de prédicat est activé.

Si cassandra ne peut pas suffire à l'état du filtre, le connecteur spark-cassandra lira les données complètes et appliquera le filtre.

Vous pouvez vérifier si le filtre est poussé vers cassandra en utilisant df.explain.

Predicate Pushdown in spark-cassandra-connector