pyspark 比较数据中的列(current_week (YYYYXX),其中 XX 是周数)与当前系统周数(今天的周数)



我有一个带有列=>data_week_number,格式为YYYYYYX(例如:202040(。

我想确保删除所有早于当前系统周数的数据。如何获取系统信息以进行比较?

我可以在Spark中看到系统日期和周数,但不是上面的格式。

直到spark 2.4.6,您可以按如下方式进行:

spark.sql("""select 202040 - 
date_format(to_date(
current_date, "dd/MMM/yyyy"), 'yyyyww') yearWk             
""").show

哪个返回:

+------+
|yearWk|
+------+
|   2.0|
+------+

自spark 3.0起,date_format不再接受:

  • 周的'w',或
  • 周的'W'

您可以将spark.sql.legacy.timeParserPolicy设置为LEGACY以恢复spark 3.0 之前的行为

最新更新