Вы можете использовать результат show partitions
, так как он будет более эффективным, так как он будет воздействовать только на метастор. Однако вы не можете просто применить максимальное значение к значению там, нам нужно сначала построить дату, а затем выполнить максимальное.
Вот пример:
from pyspark.sql import functions as F
df = sqlContext.sql("show partitions")
df.show(10, False)
date = F.to_date(F.regexp_replace(F.regexp_replace("partition", "[a-z=]", ""), "/", "-"))
df.select(F.max(date).alias("max_date")).show()
Входные значения :
+------------------------+
|partition |
+------------------------+
|year=2019/month=11/day=5|
|year=2019/month=9/day=5 |
+------------------------+
Результат:
+----------+
| max_date|
+----------+
|2019-11-05|
+----------+