次の方法で共有


make_timestamp

年、月、日、時間、分、秒、および (省略可能) タイムゾーン フィールドからタイムスタンプを作成します。 または、日付、時刻、および (省略可能) タイムゾーン フィールドからタイムスタンプを作成します。 結果のデータ型は、構成 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   |
+--------------------------+