0

如果我在 KuduRDD 上执行过滤器,那么首先 Spark 作业从 Kudu 表中读取所有数据并在 Spark 应用程序中执行过滤器作业,或者过滤发生在 Kudu 服务器上,而 Spark 应用程序只接收过滤后的数据?

4

1 回答 1

1

所有数据都将RDD首先被提取到 Spark。kuduRDD只返回一个普通RDD[Row]的:

def kuduRDD(sc: SparkContext,
            tableName: String,
            columnProjection: Seq[String] = Nil): RDD[Row] = { ...

并且之后没有特别的优化。

使用DataframeAPI,根据在 Apache Kudu 上使用 Apache Spark 启动并运行,可以下推以下谓词:

等于 (=)

大于 (>)

大于或等于 (>=)

小于 (<)

小于或等于 (<=)

于 2018-01-20T16:56:14.207 回答