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>)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 表現する年 (1 から 9999)。個々のコンポーネントからタイムスタンプを作成するときに必要です。月、日、時間、分、秒と一緒に使用する必要があります。 |
|
| 年内の月を表す。1 (1 月) から 12 (12 月) まで。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、日、時間、分、秒と一緒に使用する必要があります。 |
|
| 表す月内の日付(1 から 31 まで)。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、時間、分、秒と一緒に使用する必要があります。 |
|
| 表す時刻(0 から 23)。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、分、秒と一緒に使用する必要があります。 |
|
| 0 から 59 までの分を表します。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、時間、秒と一緒に使用する必要があります。 |
|
| 0 から 60 までの秒数とその小数部を表します。値は 13 のような整数、または 13.123 のような分数のいずれかになります。sec 引数が 60 に等しい場合、秒フィールドは 0 に設定され、最終タイムスタンプに 1 分が追加されます。個々のコンポーネントからタイムスタンプを作成するときに必要です。年、月、日、時間、分と一緒に使用する必要があります。 |
|
| オプション。タイムゾーン識別子。たとえば、CET、UTC など。 |
|
| 有効な DATE 形式で表す日付。日付と時刻のコンポーネントからタイムスタンプを作成するときに必要です。時間がある場合のみ使用する必要があります。 |
|
| 有効な 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 |
+------------------------------------------------------+