9.3 日期函数
add_months(start, months)
:增加月份参数:
start
:列名或者Column
表达式,指定起始时间months
:指定增加的月份
示例:
df = spark_session.createDataFrame([('2015-04-08',)], ['d'])
df.select(add_months(df.d, 1).alias('d'))
# 结果为:[Row(d=datetime.date(2015, 5, 8))]
current_data()
:返回当前日期作为一列current_timestamp()
:返回当前的时间戳作为一列date_add(start,days)
:增加天数参数:
start
:列名或者Column
表达式,指定起始时间days
:指定增加的天数
date_sub(start,days)
:减去天数参数:
start
:列名或者Column
表达式,指定起始时间days
:指定减去的天数
date_diff(end,start)
:返回两个日期之间的天数差值参数:
end
:列名或者Column
表达式,指定结束时间。为date/timestamp/string
start
:列名或者Column
表达式,指定起始时间。为date/timestamp/string
date_format(date,format)
:转换date/timestamp/string
到指定格式的字符串。参数:
date
:一个date/timestamp/string
列的列名或者Column
format
:一个字符串,指定了日期的格式化形式。支持java.text.SimpleDateFormat
的所有格式。
dayofmonth(col)
:返回日期是当月的第几天(一个整数)。其中col
为date/timestamp/string
dayofyear(col)
:返回日期是当年的第几天(一个整数)。其中col
为date/timestamp/string
from_unixtime(timestamp, format='yyyy-MM-dd HH:mm:ss')
:转换unix
时间戳到指定格式的字符串。参数:
timestamp
:时间戳的列format
:时间格式化字符串
from_utc_timestamp(timestamp, tz)
:转换unix
时间戳到指定时区的日期。hour(col)
:从指定时间中抽取小时,返回一个整数列参数:
col
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
minute(col)
:从指定时间中抽取分钟,返回一个整数列参数:
col
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
second(col)
:从指定的日期中抽取秒,返回一个整数列。参数:
col
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
month(col)
:从指定时间中抽取月份,返回一个整数列参数:
col
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
quarter(col)
:从指定时间中抽取季度,返回一个整数列参数:
col
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
last_day(date)
:返回指定日期的当月最后一天(一个datetime.date
)参数:
date
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
months_between(date1,date2)
:返回date1
到date2
之间的月份(一个浮点数)。也就是
date1-date2
的天数的月份数量。如果为正数,表明date1 > date2
。参数:
date1
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列date2
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列
next_day(date,dayOfWeek)
:返回指定天数之后的、且匹配dayOfWeek
的那一天。参数:
date1
:一个字符串或者Column
。是表示时间的字符串列,或者datetime
列dayOfWeek
:指定星期几。是大小写敏感的,可以为:'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'
to_date(col,format=None)
:转换pyspark.sql.types.StringType
或者pyspark.sql.types.TimestampType
到pyspark.pysql.types.DateType
参数:
col
:一个字符串或者Column
。是表示时间的字符串列format
:指定的格式。默认为yyyy-MM-dd
to_timestamp(col,format=None)
:将StringType,TimestampType
转换为DataType
。参数:
col
:一个字符串或者Column
。是表示时间的字符串列format
:指定的格式。默认为yyyy-MM-dd HH:mm:ss
to_utc_timestamp(timestamp,tz)
:根据给定的时区,将StringType,TimestampType
转换为DataType
。参数:
col
:一个字符串或者Column
。是表示时间的字符串列tz
:一个字符串,表示时区
trunc(date,format)
:裁剪日期到指定的格式 。参数:
date
:一个字符串或者Column
。是表示时间的字符串列format
:指定的格式。如:'year','YYYY','yy','month','mon','mm','d'
unix_timestamp(timestamp=None,format='yyyy-MM-dd HH:mm:ss')
:给定一个unix timestamp
(单位为秒),将其转换为指定格式的字符串。使用默认的时区和默认的locale
。如果转换失败,返回
null
。如果
timestamp=None
,则返回当前的timestamp
。参数:
timestamp
:一个unix
时间戳列。format
:指定转换的格式
weekofyear(col)
: 返回给定时间是当年的第几周。返回一个整数。year(col)
:从日期中抽取年份,返回一个整数。