【发布时间】:2019-07-10 03:48:38
【问题描述】:
我使用了包含查询的数据框
df : Dataframe =spark.sql(s"show Partitions $yourtablename")
现在分区的数量每天都在变化,因为它每天都在运行。
主要关心的是我需要获取最新的分区。
假设我获得了特定日期的随机表的分区 喜欢
year=2019/month=1/day=1
year=2019/month=1/day=10
year=2019/month=1/day=2
year=2019/month=1/day=21
year=2019/month=1/day=22
year=2019/month=1/day=23
year=2019/month=1/day=24
year=2019/month=1/day=25
year=2019/month=1/day=26
year=2019/month=2/day=27
year=2019/month=2/day=3
现在您可以看到它对分区进行排序的功能,以便在day=1 之后出现day=10。这会产生一个问题,因为我需要获取最新的分区。
我已经设法通过使用来获取分区
val df =dff.orderby(col("partition").desc.limit(1)
但这给了我尾 -1 分区,而不是最新的分区。
如何从表中获取最新的分区,以克服 hives 对排列分区的限制?
所以假设在上面的例子中我需要拿起
year=2019/month=2/day=27
而不是
year=2019/month=2/day=3
这是表中的最后一个分区。
【问题讨论】:
-
我会通过使用谓词下推的 s""" 的适当查询来读取分区。
标签: dataframe apache-spark-sql rdd natural-sort