我想用 DataFrameReader.load("table name")
加载 hive
表记录并返回为 DataFrame
.
但是我不想加载整个记录,我只想获取具有特定日期的记录(这是配置单元表中的一个字段)。
如果我在返回的Dataframe中添加where条件,它会先加载整个表吗 filter
记录是基于日期的吗?
因为配置单元表是巨大的,并且它是基于日期字段进行分区的。
基本上我想实现 select * from table where date='date'
使用load方法而不加载整个表。
1条答案
按热度按时间goqiplq21#
spark的最新版本支持一种称为“ predicate 下推”的特性。它做的正是您想要的:尽可能地将sql子句推送到源代码中。我不确定 predicate 下推现在是否适用于配置单元数据源(它适用于parquet、jdbc和其他一些源)。另请参阅spark predicate 下推是否与jdbc一起工作?