所以我知道按日期划分表是非常简单的。
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> 为原表名。
现在,如果您想合并不同的分区表,您可以根据单个日期merge
或join
它们。