PySpark将字符串列转换为日期时间类型

时间:2020-09-07 16:28:48

标签: datetime pyspark

我有类似TIMESTAMP的数据:

[29:23:59:45]

这代表任何一个月29,23:59:45

如何在PySpark中将其转换为DAY 29,TIME:23:59:45?

可能使用类似

from datetime import datetime

dVal = datetime.strptime('[29:23:59:45]', '%d/%h/%m/%s')

1 个答案:

答案 0 :(得分:1)

这是一个经典示例,需要使用用户定义函数(UDF)。

from datetime import datetime
from spark.sql import functions as F

def toDate(x):
   return datetime.strptime(x, '%m %H:%M:%S')

toDate = F.udf(toDate)
new_df = df.withColumn('date', toDate(F.col('timestamp'))

其中,df应该是包含您所报告的名为“ timestamp”的列的旧数据框。