Spark SQL - DataFrameReader加载方法与where条件

时间:2016-04-19 18:05:19

标签: java apache-spark hive apache-spark-sql

我正在尝试使用DataFrameReader.load("table name")加载hive表记录并返回DataFrame

但是我不想加载整个记录,我想只获取具有特定日期的记录(这是hive表中的字段之一)。

如果我在返回的DataFrame中添加where条件,它会先加载整个表,然后根据日期filter加载记录吗?

因为配置单元表很大,并且它是根据日期字段进行分区的。

基本上我想使用load方法实现select * from table where date='date'而不加载整个表。

1 个答案:

答案 0 :(得分:0)

Spark支持功能的最新版本称为"谓词下推"。它完全符合您的要求:在可能的情况下,将SQL子句WHERE引入源代码。我现在还不确定谓词下推是否适用于Hive数据源(适用于镶木地板,JDBC和其他一些来源)。 另请参阅Does spark predicate pushdown work with JDBC?