apache-spark
  • cassandra
  • spark-cassandra-connector
  • 2017-08-17 18 views 0 likes 
    0

    我有以下代碼。是否會觸發加載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'") 
    

    我的問題是,在這個將加載從卡桑德拉表中的所有數據,然後應用過濾器,否則將只能從卡桑德拉加載「測試」 KPI數據?

    回答

    1

    如果第kpi列是分區鍵,則spark-cassandra-connector將只讀取相應的記錄。

    默認情況下啓用了謂詞下推。

    如果cassandra無法滿足過濾條件,則spark-cassandra-connector將讀取完整數據,然後應用過濾器。

    您可以使用df.explain來檢查過濾器是否被推送到cassandra。

    Predicate Pushdown in spark-cassandra-connector

    相關問題