如果我在KuduRDD上执行过滤器,那么首先Spark作业读取Kudu表中的所有数据并在Spark应用程序中执行过滤器作业,或者在Kudu Server上进行过滤,并且Spark应用程序仅接收过滤数据?
答案 0 :(得分:1)
使用RDD
,所有数据将首先被提取到Spark。 kuduRDD
仅返回plain RDD[Row]
:
def kuduRDD(sc: SparkContext,
tableName: String,
columnProjection: Seq[String] = Nil): RDD[Row] = { ...
之后没有特别的优化。
使用Dataframe
API,根据Up and running with Apache Spark on Apache Kudu,可以推送以下谓词:
等于(=)
大于(>)
大于或等于(> =)
小于(<)
小于或等于(< =)