年、月、日、時間、分、秒、および (省略可能) タイムゾーン フィールドからタイムスタンプを作成します。 または、日付、時刻、および (省略可能) タイムゾーン フィールドからタイムスタンプを作成します。 結果のデータ型は、構成 spark.sql.timestampTypeの値と一致します。 構成 spark.sql.ansi.enabled が false の場合、関数は無効な入力で NULL を返します。 それ以外の場合は、代わりにエラーがスローされます。
対応する Databricks SQL 関数については、 make_timestamp 関数を参照してください。
構文
import pyspark.sql.functions as sf
# From individual components
sf.make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>)
# With timezone
sf.make_timestamp(years=<years>, months=<months>, days=<days>, hours=<hours>, mins=<mins>, secs=<secs>, timezone=<timezone>)
# From date and time
sf.make_timestamp(date=<date>, time=<time>)
# From date and time with timezone
sf.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: タイムスタンプを含む新しい列。
例示
例 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.make_timestamp(df.year, df.month, df.day, 'hour', df.min, df.sec, 'tz')
).show(truncate=False)
+----------------------------------------------------+
|make_timestamp(year, month, day, hour, min, sec, tz)|
+----------------------------------------------------+
|2014-12-27 21:30:45.887 |
+----------------------------------------------------+
例 2: 年、月、日、時間、分、秒からタイムスタンプを作成する (タイムゾーンなし)。
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.make_timestamp('year', 'month', df.day, df.hour, df.min, df.sec)
).show(truncate=False)
+--------------------------------------------------+
|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.make_timestamp(date=df.date, time=df.time, timezone=df.tz)).show(truncate=False)
+------------------------------------+
|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.make_timestamp(date=df.date, time=df.time)).show(truncate=False)
+--------------------------+
|make_timestamp(date, time)|
+--------------------------+
|2014-12-28 06:30:45.887 |
+--------------------------+