to_utc_タイムスタンプ
これは、TIMESTAMP WITHOUT TIMEZONE をサポートするデータベースに共通する関数です。この機能 タイムゾーンに依存しないタイムスタンプを受け取り、それを指定されたタイムゾーンのタイムスタンプとして解釈します。 タイムゾーンを判別し、そのタイムスタンプを UTC のタイムスタンプとしてレンダリングします。
しかし、SparkのタイムスタンプはUnixエポックからのマイクロ秒数を表すため、 タイムゾーンに依存しません。Sparkではこの関数は指定されたタイムスタンプ値をシフトするだけです タイムゾーンを UTC タイムゾーンに変更します。
この関数は、入力がタイムゾーンを含む文字列の場合、混乱を招く結果を返す可能性があります。例:'2018-03-13T06:18:23+00:00'。理由は、Sparkが最初に文字列をタイムスタンプにキャストするからです 文字列のタイムゾーンに従って変換し、最後に結果を表示します。 セッションのローカルタイムゾーンに従ってタイムスタンプを文字列に変換します。
対応する Databricks SQL 関数については、 to_utc_timestamp関数を参照してください。
構文
from pyspark.databricks.sql import functions as dbf
dbf.to_utc_timestamp(timestamp=<timestamp>, tz=<tz>)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| タイムスタンプを含む列 |
|
| 入力を調整するタイムゾーン ID の詳細を示す文字列。地域ベースのゾーン ID またはゾーン オフセットのいずれかの形式にする必要があります。地域 ID は、「America/Los_Angeles」のように「エリア/都市」の形式にする必要があります。ゾーンオフセットは「(+|-)HH」の形式で指定する必要があります'、たとえば '-08:00' または '+01:00' です。また、「UTC」と「Z」も「+00:00」のエイリアスとしてサポートされています。その他の短い名前はあいまいになる可能性があるため、使用はお勧めしません。 |
戻り値
pyspark.sql.Column: UTC タイムゾーンで表されるタイムスタンプ値。
例
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('1997-02-28 10:30:00', 'JST')], ['ts', 'tz'])
df.select('*', dbf.to_utc_timestamp('ts', "PST")).show()
df.select('*', dbf.to_utc_timestamp(df.ts, df.tz)).show()