Ros*_*oss 5 apache-spark pyspark
我有一个镶木地板,按以下方式分区:
data
/batch_date=2020-01-20
/batch_date=2020-01-21
/batch_date=2020-01-22
/batch_date=2020-01-23
/batch_date=2020-01-24
Run Code Online (Sandbox Code Playgroud)
这里batch_date是分区列,是日期类型。
我只想读取最新日期分区中的数据,但作为消费者,我不知道最新值是什么。
我可以通过类似的方式使用一个简单的组
df.groupby().agg(max(col('batch_date'))).first()
Run Code Online (Sandbox Code Playgroud)
虽然这可行,但这是一种非常低效的方法,因为它涉及到 groupby。
我想知道我们是否可以以更有效的方式查询最新的分区。
谢谢。
使用 Show Partitions 获取表的所有分区
show partitions TABLENAME
Run Code Online (Sandbox Code Playgroud)
输出会像
pt=2012.07.28.08/is_complete=1
pt=2012.07.28.09/is_complete=1
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下查询从特定分区获取数据
select * from TABLENAME where pt='2012.07.28.10' and is_complete='1' limit 1;
Run Code Online (Sandbox Code Playgroud)
或者可以对其应用附加过滤器或分组依据。
| 归档时间: |
|
| 查看次数: |
9258 次 |
| 最近记录: |