次の方法で共有


try_make_timestamp

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

構文

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>)

パラメーター

パラメーター タイプ Description
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 表す 2 分目とそのマイクロ分数。0 から 60 まで。 値には、13 のような整数、または 13.123 のような分数を指定できます。 sec 引数が 60 の場合、秒フィールドは 0 に設定され、1 分が最終タイムスタンプに追加されます。 個々のコンポーネントからタイムスタンプを作成するときに必要です。 年、月、日、時間、および分と共に使用する必要があります。
timezone pyspark.sql.Column または str Optional. タイム ゾーン識別子。 たとえば、CET、UTC などです。
date pyspark.sql.Column または str 有効な DATE 形式で表す日付。 日付と時刻のコンポーネントからタイムスタンプを作成するときに必要です。 時間パラメーターでのみ使用する必要があります。
time pyspark.sql.Column または str 有効な TIME 形式で表す時刻。 日付と時刻のコンポーネントからタイムスタンプを作成するときに必要です。 日付パラメーターでのみ使用する必要があります。

返品ポリシー

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

例示

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

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)
+----------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887                             |
+----------------------------------------------------+

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

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)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|2014-12-28 06:30:45.887                               |
+------------------------------------------------------+

例 3: タイムゾーンを使用して日付と時刻からタイムスタンプを作成する。

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)
+----------------------------------------+
|try_make_timestamp(date, time, timezone)|
+----------------------------------------+
|2014-12-27 21:30:45.887                 |
+----------------------------------------+

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

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)
+------------------------------+
|try_make_timestamp(date, time)|
+------------------------------+
|2014-12-28 06:30:45.887       |
+------------------------------+

例 5: 無効な入力で NULL を返します。

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)
+------------------------------------------------------+
|try_make_timestamp(year, month, day, hour, min, sec) |
+------------------------------------------------------+
|NULL                                                  |
+------------------------------------------------------+