我有一個格式的列yyyy-MM-dd HH:mm:ss。我想將其轉換為以下格式的時間:HH:mm:ss
我正在嘗試以下功能,但沒有成功:
date_format(date, 'HH:mm:ss')
如何在 spark SQL 中實作這一點?
我的代碼:
date_format(schedule_date, 'HH:mm:ss')
輸入: 13-12-2021 4:05:00 AM
預期輸出: 4:05:00 AM
uj5u.com熱心網友回復:
您的輸入列schedule_date似乎是字串型別,您需要TimestampType在使用date_format函式之前將其轉換為:
import pyspark.sql.functions as F
df = spark.createDataFrame([('13-12-2021 4:05:00 AM',)], ['schedule_date'])
df.withColumn(
'schedule_time',
F.date_format(F.to_timestamp('schedule_date', 'dd-MM-yyy H:mm:ss a'), 'H:mm:ss a')
).show(truncate=False)
# --------------------- -------------
#|schedule_date |schedule_time|
# --------------------- -------------
#|13-12-2021 4:05:00 AM|4:05:00 AM |
# --------------------- -------------
Spark SQL 等效查詢:
select date_format(to_timestamp(schedule_date, 'dd-MM-yyy H:mm:ss a'), 'H:mm:ss a') as schedule_time
from df
uj5u.com熱心網友回復:
你可以在下面使用。
# 選項1
import pyspark.sql.functions as F
df = spark.createDataFrame([('13-12-2021 4:05:00 PM',)], ['schedule_date'])
df.withColumn(
'schedule_time',
F.date_format(F.to_timestamp('schedule_date', 'dd-MM-yyy hh:mm:ss aa'), 'hh:mm:ss aa')
).show(truncate=False)
# 選項 2
import pyspark.sql.functions as F
df = spark.createDataFrame([('13-12-2021 4:05:00 AM',)], ['schedule_date'])
df.withColumn(
'schedule_time',
F.from_unixtime(F.unix_timestamp('schedule_date', 'dd-MM-yyy hh:mm:ss aa'), 'hh:mm:ss aa')
).show(truncate=False)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/401929.html
