pyspark.sql.functions.try_make_timestamp_ntz#

pyspark.sql.functions.try_make_timestamp_ntz(years=None, months=None, days=None, hours=None, mins=None, secs=None, date=None, time=None)[source]#

Try to create local date-time from years, months, days, hours, mins, secs fields. Alternatively, try to create local date-time from date and time fields. The function returns NULL on invalid inputs.

New in version 4.0.0.

Changed in version 4.1.0: Added support for creating timestamps from date and time.

Parameters
yearsColumn or column name, optional

The year to represent, from 1 to 9999. Required when creating timestamps from individual components. Must be used with months, days, hours, mins, and secs.

monthsColumn or column name, optional

The month-of-year to represent, from 1 (January) to 12 (December). Required when creating timestamps from individual components. Must be used with years, days, hours, mins, and secs.

daysColumn or column name, optional

The day-of-month to represent, from 1 to 31. Required when creating timestamps from individual components. Must be used with years, months, hours, mins, and secs.

hoursColumn or column name, optional

The hour-of-day to represent, from 0 to 23. Required when creating timestamps from individual components. Must be used with years, months, days, mins, and secs.

minsColumn or column name, optional

The minute-of-hour to represent, from 0 to 59. Required when creating timestamps from individual components. Must be used with years, months, days, hours, and secs.

secsColumn or column name, optional

The second-of-minute and its micro-fraction to represent, from 0 to 60. The value can be either an integer like 13, or a fraction like 13.123. If the sec argument equals to 60, the seconds field is set to 0 and 1 minute is added to the final timestamp. Required when creating timestamps from individual components. Must be used with years, months, days, hours, and mins.

dateColumn or column name, optional

The date to represent, in valid DATE format. Required when creating timestamps from date and time components. Must be used with time parameter only.

timeColumn or column name, optional

The time to represent, in valid TIME format. Required when creating timestamps from date and time components. Must be used with date parameter only.

Returns
Column

A new column that contains a local date-time, or NULL in case of an error.

Examples

>>> spark.conf.set("spark.sql.session.timeZone", "America/Los_Angeles")

Example 1: Make local date-time from years, months, days, hours, mins, secs.

>>> import pyspark.sql.functions as sf
>>> df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887]],
...     ['year', 'month', 'day', 'hour', 'min', 'sec'])
>>> df.select(
...     sf.try_make_timestamp_ntz('year', 'month', df.day, df.hour, df.min, df.sec)
... ).show(truncate=False)
+--------------------------------------------------------+
|try_make_timestamp_ntz(year, month, day, hour, min, sec)|
+--------------------------------------------------------+
|2014-12-28 06:30:45.887                                 |
+--------------------------------------------------------+

Example 2: Make local date-time with invalid input

>>> import pyspark.sql.functions as sf
>>> df = spark.createDataFrame([[2014, 13, 28, 6, 30, 45.887]],
...     ['year', 'month', 'day', 'hour', 'min', 'sec'])
>>> df.select(
...     sf.try_make_timestamp_ntz('year', 'month', df.day, df.hour, df.min, df.sec)
... ).show(truncate=False)
+--------------------------------------------------------+
|try_make_timestamp_ntz(year, month, day, hour, min, sec)|
+--------------------------------------------------------+
|NULL                                                    |
+--------------------------------------------------------+
>>> spark.conf.unset("spark.sql.session.timeZone")