9.3 日期函数

  1. add_months(start, months):增加月份

    • 参数:

      • start:列名或者Column 表达式,指定起始时间
      • months:指定增加的月份
    • 示例:

      1. df = spark_session.createDataFrame([('2015-04-08',)], ['d'])
      2. df.select(add_months(df.d, 1).alias('d'))
      3. # 结果为:[Row(d=datetime.date(2015, 5, 8))]
  2. current_data():返回当前日期作为一列

  3. current_timestamp():返回当前的时间戳作为一列

  4. date_add(start,days):增加天数

    • 参数:

      • start:列名或者Column 表达式,指定起始时间
      • days:指定增加的天数
  5. date_sub(start,days):减去天数

    • 参数:

      • start:列名或者Column 表达式,指定起始时间
      • days:指定减去的天数
  6. date_diff(end,start):返回两个日期之间的天数差值

    • 参数:

      • end:列名或者Column 表达式,指定结束时间。为date/timestamp/string
      • start:列名或者Column 表达式,指定起始时间。为date/timestamp/string
  7. date_format(date,format):转换date/timestamp/string 到指定格式的字符串。

    • 参数:

      • date:一个date/timestamp/string 列的列名或者Column
      • format:一个字符串,指定了日期的格式化形式。支持java.text.SimpleDateFormat 的所有格式。
  8. dayofmonth(col):返回日期是当月的第几天(一个整数)。其中coldate/timestamp/string

  9. dayofyear(col):返回日期是当年的第几天(一个整数)。其中coldate/timestamp/string

  10. from_unixtime(timestamp, format='yyyy-MM-dd HH:mm:ss'):转换unix 时间戳到指定格式的字符串。

    • 参数:

      • timestamp:时间戳的列
      • format:时间格式化字符串
  11. from_utc_timestamp(timestamp, tz):转换unix 时间戳到指定时区的日期。

  12. hour(col):从指定时间中抽取小时,返回一个整数列

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列,或者datetime
  13. minute(col):从指定时间中抽取分钟,返回一个整数列

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列,或者datetime
  14. second(col):从指定的日期中抽取秒,返回一个整数列。

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列,或者datetime
  15. month(col):从指定时间中抽取月份,返回一个整数列

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列,或者datetime
  16. quarter(col):从指定时间中抽取季度,返回一个整数列

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列,或者datetime
  17. last_day(date):返回指定日期的当月最后一天(一个datetime.date

    • 参数:

      • date:一个字符串或者Column。是表示时间的字符串列,或者datetime
  18. months_between(date1,date2):返回date1date2 之间的月份(一个浮点数)。

    也就是date1-date2 的天数的月份数量。如果为正数,表明date1 > date2

    • 参数:

      • date1:一个字符串或者Column。是表示时间的字符串列,或者datetime
      • date2:一个字符串或者Column。是表示时间的字符串列,或者datetime
  19. next_day(date,dayOfWeek):返回指定天数之后的、且匹配dayOfWeek 的那一天。

    • 参数:

      • date1:一个字符串或者Column。是表示时间的字符串列,或者datetime
      • dayOfWeek:指定星期几。是大小写敏感的,可以为:'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'
  20. to_date(col,format=None):转换pyspark.sql.types.StringType 或者pyspark.sql.types.TimestampTypepyspark.pysql.types.DateType

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列
      • format:指定的格式。默认为yyyy-MM-dd
  21. to_timestamp(col,format=None):将StringType,TimestampType 转换为DataType

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列
      • format:指定的格式。默认为yyyy-MM-dd HH:mm:ss
  22. to_utc_timestamp(timestamp,tz):根据给定的时区,将StringType,TimestampType 转换为DataType

    • 参数:

      • col:一个字符串或者Column。是表示时间的字符串列
      • tz:一个字符串,表示时区
  23. trunc(date,format):裁剪日期到指定的格式 。

    • 参数:

      • date:一个字符串或者Column。是表示时间的字符串列
      • format:指定的格式。如: 'year','YYYY','yy','month','mon','mm','d'
  24. unix_timestamp(timestamp=None,format='yyyy-MM-dd HH:mm:ss') :给定一个unix timestamp(单位为秒),将其转换为指定格式的字符串。使用默认的时区和默认的locale

    如果转换失败,返回null

    如果timestamp=None,则返回当前的timestamp

    • 参数:

      • timestamp:一个unix 时间戳列。
      • format:指定转换的格式
  25. weekofyear(col): 返回给定时间是当年的第几周。返回一个整数。

  26. year(col):从日期中抽取年份,返回一个整数。