databricks 按周划分日期

databricks partition date by week

我是数据块的新手,正在尝试创建 partition.I 3 个可用于分区的列,即名称、值和 date.The 所需的条件是日期分区应该每周一次。 我做过这样的事情:

df\
.write\
.format("delta")\
.partitionBy(["name","value" and "date"]).
.save(writePath)

我不知道如何按周划分日期?我遇到了 repartitionByRange 但不确定如何申请我的条件?

您可以从 date 列创建新列 weekyear 并在 partitionby:

中使用它们
from pyspark.sql import functions as F

df.withColumn("week", F.weekofyear("date")) \
.withColumn("year", F.year("date")) \
.write \
.format("delta") \
.partitionBy("year", "week") \
.save(writePath)

请注意,仅周数是不够的,因为它还取决于年份。