【发布时间】:2018-08-16 07:04:46
【问题描述】:
我一直在阅读 Data Source V2 API 和 Filter Pushdown(可能还有分区修剪)。在示例中,有人谈到下推到 mySQL。
好的,我不清楚。我在这里和那里看到了关于数据源 V2 API 的讨论(例如在Exploring Spark DataSource V2 - Part 4 : In-Memory DataSource with Partitioning 中)。一切都很好,但是正如答案所述,我已经可以为 mySQL 下推了。这些讨论以某种方式暗示了相反的意思——所以我显然错过了一点——沿着这条线的某个地方,我想知道是什么。
我的问题/观察是我已经可以为 JDBC 源(例如 mySQL)执行过滤器下推。例如。如下:
sql = "(select * from mytab where day = 2016-11-25 and hour = 10) t1"
这可确保并非所有数据都被带回 SPARK。
那么,我错过了什么?
【问题讨论】:
-
自 JDBC 源代码的第一个版本以来,Spark 支持下推,并且您使用的示例(在表定义中嵌入查询)不是下推。您对查询进行硬编码,这甚至可以在第一个数据源 API 发布(1.3 左右)之前完成。
-
好吧,那我现在明白了。但这不是我认识的大多数人对这个词的看法。硬编码与否。我很确定网络上的很多东西都是这样暗示的。我站得更正了。但是你可以用 s 参数化。
标签: apache-spark apache-spark-sql