我正在尝试使用DataFrameReader.load("table name")
加载hive
表记录并返回DataFrame
。
但是我不想加载整个记录,我想只获取具有特定日期的记录(这是hive表中的字段之一)。
如果我在返回的DataFrame中添加where条件,它会先加载整个表,然后根据日期filter
加载记录吗?
因为配置单元表很大,并且它是根据日期字段进行分区的。
基本上我想使用load方法实现select * from table where date='date'
而不加载整个表。
答案 0 :(得分:0)
Spark支持功能的最新版本称为"谓词下推"。它完全符合您的要求:在可能的情况下,将SQL子句WHERE引入源代码。我现在还不确定谓词下推是否适用于Hive数据源(适用于镶木地板,JDBC和其他一些来源)。 另请参阅Does spark predicate pushdown work with JDBC?