【问题标题】:Change string to HH:MM:SS in PySpark在 PySpark 中将字符串更改为 HH:MM:SS
【发布时间】:2020-10-15 14:43:46
【问题描述】:

我有“分钟”列。我想在 PySpark 中将列更改为 hh:mm:ss 格式

输入:

     minutes(string type)
     10
     20
     70
     90

输出:

minutes(string type)    min_change
    10                  00:10:00
    20                  00:20:00
    70                  01:10:00
    90                  01:30:00

【问题讨论】:

标签: string time pyspark type-conversion


【解决方案1】:

使用lit("00:00:00") 添加一列并将其转换为timestamp。将minutes 转换为秒并将其添加到时间戳列。最后,使用date_format() 得到你想要的格式:

from pyspark.sql.functions import *
from pyspark.sql import functions as F

df.withColumn("minutes", col("minutes").cast("int"))\
    .withColumn("min_change", lit("00:00:00").cast("timestamp"))\
    .withColumn("min_change", (F.unix_timestamp("min_change") + F.col("minutes")*60).cast('timestamp'))\
    .withColumn("min_change", date_format("min_change",'HH:mm:ss')).show()

+-------+----------+                                                            
|minutes|min_change|
+-------+----------+
|     10|  00:10:00|
|     20|  00:20:00|
|     70|  01:10:00|
|     90|  01:30:00|
+-------+----------+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2015-07-06
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多