Hive SQL-多个分区之间

我有一个按年,月和日划分的配置单元表

CREATE TABLE t1 (
...
 )
PARTITIONED BY (
year INT,month INT,day INT'
)
STORED AS ParqUET;

,我需要从过去7天/分区中获取数据。寻找如何获取最后7天的数据的第一步,例如:

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
val runDate = date
val runDay = LocalDate.parse(runDate.toString,formatter)
val runDayMinus7 = runDay.minusDays(7)

但是后来我面对桥下的巨魔。是否可以通过多个分区在这两个日期之间选择数据?否则,是否可以通过某种方式将多个分区更改为单个分区YYYYMMDD?

任何一个scala,一个蜂巢。

预先感谢

iCMS 回答:Hive SQL-多个分区之间

我创建了下一个方法来解决这个问题。日期和天数这两个参数

  def dayFilter(date: LocalDate,days: Int): Column = {
   days match {
    case _ if days < 0 => lit(false)
    case 0 => (col("year") === date.getYear and
     col("month") === date.getMonthValue and
     col("day") === date.getDayOfMonth)
    case _ => (col("year") === date.getYear and
     col("month") === date.getMonthValue and
     col("day") === date.getDayOfMonth) or dayFilter(date.minusDays(1),days - 1)
   }
 }

如果导入Java LocalDate,则需要getMonthValue。如果我们使用joda.time然后使用getMonthOfYear

本文链接:https://www.f2er.com/2229259.html

大家都在问