メインコンテンツまでスキップ

try_make_timestamp

年、月、日、時間、分、秒、および (オプション) タイムゾーン フィールドからタイムスタンプを作成してみます。または、日付、時刻、および (オプション) タイムゾーン フィールドからタイムスタンプを作成してみてください。結果のデータ型は構成spark.sql.timestampTypeの値と一致しています。関数は無効な入力に対して NULL を返します。

構文

Python
import pyspark.sql.functions as sf

# From individual components
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>)

# With timezone
sf.try_make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, timezone=<timezone>)

# From date and time
sf.try_make_timestamp(date=<date>, time=<time>)

# From date and time with timezone
sf.try_make_timestamp(date=<date>, time=<time>, timezone=<timezone>)

パラメーター

パラメーター

Type

説明

years

pyspark.sql.Column または str

表現する年 (1 から 9999)。個々のコンポーネントからタイムスタンプを作成するときに必要です。月、日、時間、分、秒と一緒に使用する必要があります。

months

pyspark.sql.Column または str

年内の月を表す。1 (1 月) から 12 (12 月) まで。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、日、時間、分、秒と一緒に使用する必要があります。

days

pyspark.sql.Column または str

表す月内の日付(1 から 31 まで)。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、時間、分、秒と一緒に使用する必要があります。

hours

pyspark.sql.Column または str

表す時刻(0 から 23)。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、分、秒と一緒に使用する必要があります。

mins

pyspark.sql.Column または str

0 から 59 までの分を表します。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、時間、秒と一緒に使用する必要があります。

secs

pyspark.sql.Column または str

0 から 60 までの秒数とその小数部を表します。値は 13 のような整数、または 13.123 のような分数のいずれかになります。sec 引数が 60 に等しい場合、秒フィールドは 0 に設定され、最終タイムスタンプに 1 分が追加されます。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、時間、分と一緒に使用する必要があります。

timezone

pyspark.sql.Column または str

オプション。タイムゾーン識別子。たとえば、CET、UTC など。

date

pyspark.sql.Column または str

有効な DATE 形式で表す日付。日付と時刻のコンポーネントからタイムスタンプを作成するときに必要です。時間がある場合のみ使用する必要があります。

time

pyspark.sql.Column または str

有効な TIME 形式で表す時間。日付と時刻のコンポーネントからタイムスタンプを作成するときに必要です。日付のみで使用する必要があります。

戻り値

pyspark.sql.Column: タイムスタンプまたはエラーの場合は NULL を含む新しい列。

例 1 : 年、月、日、時間、分、秒、タイムゾーンからタイムスタンプを作成します。

Python
import pyspark.sql.functions as sf
df = spark.createDataFrame([[2014, 12, 28, 6, 30, 45.887, 'CET']],
['year', 'month', 'day', 'hour', 'min', 'sec', 'tz'])
df.select(
sf.try_make_timestamp(df.year, df.month, df.day, 'hour', df.min, df.sec, 'tz')
).show(truncate=False)
Output
+----------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------------------+

例 2 : 年、月、日、時間、分、秒 (タイムゾーンなし) からタイムスタンプを作成します。

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

例 3 : タイムゾーンを含む日付と時刻からタイムスタンプを作成します。

Python
import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
sf.lit(date(2014, 12, 28)).alias("date"),
sf.lit(time(6, 30, 45, 887000)).alias("time"),
sf.lit("CET").alias("tz")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time, timezone=df.tz)).show(truncate=False)
Output
+----------------------------------------+
|try_make_timestamp(date, time, timezone)|
+----------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------+

例 4 : 日付と時刻 (タイムゾーンなし) からタイムスタンプを作成します。

Python
import pyspark.sql.functions as sf
from datetime import date, time
df = spark.range(1).select(
sf.lit(date(2014, 12, 28)).alias("date"),
sf.lit(time(6, 30, 45, 887000)).alias("time")
)
df.select(sf.try_make_timestamp(date=df.date, time=df.time)).show(truncate=False)
Output
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887 |
+------------------------------+

例 5 : 無効な入力の場合は NULL を返します。

Python
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('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
Output
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL |
+------------------------------------------------------+