PySparkでUTCで入っている時刻をJSTに変換する

+---+-------------------+
| id|                UTC|
+---+-------------------+
|  1|2020-12-19 00:00:00|
|  2|2020-12-19 20:00:00|
+---+-------------------+

UTCが入っているデータに対してJSTの列を追加してJSTの時間に変換してみます。

from pyspark.sql.functions import from_utc_timestamp
df = spark.createDataFrame([
        (1, "2020-12-19 00:00:00"),
        (2, "2020-12-19 20:00:00")
    ],
    ["id", "UTC"])

df = df.withColumn("UTC", col("UTC").cast("Timestamp"))
df = df.withColumn("JST", from_utc_timestamp(col("UTC"),"Asia/Tokyo"))
df.show()

JSTの列が +9 されていることが分かります。

+---+-------------------+-------------------+
| id|                UTC|                JST|
+---+-------------------+-------------------+
|  1|2020-12-19 00:00:00|2020-12-19 09:00:00|
|  2|2020-12-19 20:00:00|2020-12-20 05:00:00|
+---+-------------------+-------------------+

参照