如何在pyspark数据帧中计算DateType的Max(Date)和Min(Date)?

时间:2018-04-27 19:24:56

标签: date datetime apache-spark pyspark

数据框的字符串类型'2017-01-01'

中有一个日期列

它转换为DateType()

df = df.withColumn('date', col('date_string').cast(DateType()))

我想计算该列的first daylast day。我尝试使用以下代码,但它们不起作用。谁能提出任何建议?谢谢!

df.select('date').min()
df.select('date').max()

df.select('date').last_day()
df.select('date').first_day()

1 个答案:

答案 0 :(得分:6)

minmax汇总:

from pyspark.sql.functions import min, max

df = spark.createDataFrame([
  "2017-01-01", "2018-02-08", "2019-01-03"], "string"
).selectExpr("CAST(value AS date) AS date")

min_date, max_date = df.select(min("date"), max("date")).first()
min_date, max_date
# (datetime.date(2017, 1, 1), datetime.date(2019, 1, 3))