在读取Hive表(Spark)之前过滤分区

时间:2017-09-14 15:21:16

标签: apache-spark hive hdfs

目前我正在尝试使用最新的date_processed过滤Hive表。

该表由。

分区

系统 DATE_PROCESSED 区域

我设法过滤它的唯一方法是通过连接查询:

query = "select * from contracts_table as a join (select (max(date_processed) as maximum from contract_table as b) on a.date_processed = b.maximum"

这种方式非常耗时,因为我必须为25个表执行相同的过程。

任何人都知道如何在Spark< 1.6

中直接读取表的最新加载分区

这是我用来阅读的方法。

public static DataFrame loadAndFilter (String query)
{
        return SparkContextSingleton.getHiveContext().sql(+query);
}

非常感谢!

1 个答案:

答案 0 :(得分:1)

可以通过以下方式接收包含所有表分区的数据帧:

$

可以解析值,以获取最大值。