如何根据日期范围对Delta Lake表进行分区?



所以我知道按日期划分表是非常简单的。

df.write.format("delta").mode("overwrite").partitionBy(day)

现在我希望每个分区都包含截至该日期的所有数据。因此,如果表有2015年的数据,那么我想要一个分区,包括从2015年到当前日期(6/13/22)的数据。明天,我希望分区拥有从2015年到最近一天(6/14/22)的所有数据。

我会只做partitionBy(day WHERE DATE BETWEEN '2015-01-01' AND '2022-06-14')吗?或者只是在日期范围内划分天数?我对SQL部分有点困惑。

试试下面的代码:

CREATE TABLE events
USING delta
PARTITIONED BY(date)
AS SELECT *, date(<date_column>) as date from <original_tablename>

,

  • & lt; Date_column>为日期列,
  • & lt; original_tablename>
  • 为原表名。

现在,如果您想合并不同的分区表,您可以根据单个日期mergejoin它们。

最新更新