spark会从cassandra加载整个数据

时间:2017-08-17 07:50:30

标签: apache-spark cassandra spark-cassandra-connector

我有以下代码。

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'")

我的问题是,这将从cassandra表中加载所有数据然后应用过滤器,否则它只会加载“测试”。来自cassandra的kpi数据?

1 个答案:

答案 0 :(得分:1)

如果列kpi是分区键,则spark-cassandra-connector将只读取相应的记录。

默认情况下启用谓词下推。

如果cassandra不能满足过滤条件,那么spark-cassandra-connector将读取完整数据,然后应用过滤器。

您可以使用df.explain检查过滤器是否被推送到cassandra。

Predicate Pushdown in spark-cassandra-connector