pyspark.sql.functions.make_timestamp_ltz

pyspark.sql.functions. make_timestamp_ltz ( years : ColumnOrName , months : ColumnOrName , days : ColumnOrName , hours : ColumnOrName , mins : ColumnOrName , secs : ColumnOrName , timezone : Optional [ ColumnOrName ] = None ) → pyspark.sql.column.Column [source]

根据年份、月份、天数、小时、分钟、秒钟和时区字段创建当前时间戳(使用当地时区)。如果配置 spark.sql.ansi.enabled 为假,该函数在无效输入时返回NULL。否则,它将抛出一个错误。

在3.5.0版本中新增。

Parameters
years or str

要表示的年份,从1到9999

months or str

要表示的月份,从1(一月)到12(十二月)

days or str

表示的月份中的天数,从1到31

hours or str

要表示的小时,从0到23

mins or str

表示小时中的分钟,从0到59

secs or str

表示分中的秒及其微小分数,范围从 0 到 60。 值可以是整数,例如 13,或是小数,例如 13.123。 如果 sec 参数等于 60,秒字段将被设置为 0,并且会在最终时间戳上加 1 分钟。

timezone or str

时区标识符。例如,CET,UTC等。

示例

>>> import pyspark.sql.functions as sf
>>> spark.conf.set("spark.sql.session.timeZone", "America/Los_Angeles")
>>> df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
...     ["year", "month", "day", "hour", "min", "sec", "timezone"])
>>> df.select(sf.make_timestamp_ltz(
...     df.year, df.month, df.day, df.hour, df.min, df.sec, df.timezone)
... ).show(truncate=False)
+--------------------------------------------------------------+
|make_timestamp_ltz(year, month, day, hour, min, sec, timezone)|
+--------------------------------------------------------------+
|2014-12-27 21:30:45.887                                       |
+--------------------------------------------------------------+
>>> df.select(sf.make_timestamp_ltz(
...     df.year, df.month, df.day, df.hour, df.min, df.sec)
... ).show(truncate=False)
+----------------------------------------------------+
|make_timestamp_ltz(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-28 06:30:45.887                             |
+----------------------------------------------------+
>>> spark.conf.unset("spark.sql.session.timeZone")