PySpark自定义字符串转日期格式实现方案咨询
PySpark 转换自定义格式字符串为日期/日期时间
针对格式为「8/8/23, 8:08 AM」的字符串,只需匹配对应的日期模式即可完成转换,以下是具体实现:
1. 提取日期部分(仅年月日)
如果只需要日期结果,使用to_date函数,对应的格式模式为M/d/yy, h:mm a:
from pyspark.sql.functions import to_date # 替换df为你的DataFrame名,date_str为目标字段名 df = df.select(to_date(df.date_str, 'M/d/yy, h:mm a').alias('converted_date'))
2. 保留完整日期时间
如果需要保留时分信息,改用to_timestamp函数,模式与上述一致:
from pyspark.sql.functions import to_timestamp df = df.select(to_timestamp(df.date_str, 'M/d/yy, h:mm a').alias('converted_datetime'))
模式参数说明
M:匹配1位或2位的月份(如8或08)d:匹配1位或2位的日期(如8或08)yy:匹配两位年份(23会自动解析为2023)h:匹配12小时制的小时数(1-12)mm:匹配两位分钟数(00-59)a:匹配AM/PM标识,区分上午和下午
这个模式兼容单/双位的月、日格式,无需额外处理不同长度的数字。
内容的提问来源于stack exchange,提问作者Jim Macaulay
相关产品推荐
相关产品推荐

