我在spark sql中使用了show partitions,它提供了以下内容:
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
我需要提取最新的分区
我需要分别计算年、月和日,这样我就可以在另一个Dataframe中使用它作为变量。即:
part_year=2019
part_month=1
part_day=29
我用过:
val overwrite2 = overwrite.select(col("partition",8,8) as year
我从中得到
2019/month
为了删除这个,我使用了另一个Dataframe regex_replace
将月份替换为空白以便创建另一个Dataframe。
这反过来又会产生大量的开销。我希望所有这些步骤都在一个Dataframe中完成,这样我就可以得到如下所示的结果Dataframe:
part_year=2019
part_month=2
part_day=27
正在获取最新分区。
1条答案
按热度按时间t9aqgxwy1#
问:如何从年-月-日分区列列表中提取最近/最近的分区
1) 我需要提取最新的分区。
2) 我需要分别计算年、月和日,这样我就可以在另一个Dataframe中使用它作为变量。
因为最终目标是获得最新/最近的分区。。。你可以使用jodaapi
DateTime
通过排序isAfter
获取最新的分区,如下面的示例所示。之后
spark.sql(s"show Partitions $yourtablename")
你会得到一个Dataframecollect
因为它的小数据没有问题。一旦你收集了Dataframe分区,你就会得到这样一个数组
最终结果:即你最近的约会是
2019-02-27
现在基于此,您可以以优化的方式查询配置单元数据。