Databricks中PySpark实现字符串日期转YYYY-MM-DD:HH:MM:SS格式咨询
PySpark 转换字符串日期格式(20240107193154 → YYYY-MM-DD:HH:MM:SS)
直接用to_timestamp解析原字符串格式,再通过date_format输出目标格式即可,比unixtimestamp更直观可靠。
具体实现代码
# 导入PySpark函数 from pyspark.sql.functions import to_timestamp, date_format # 示例DataFrame(替换成你的实际数据) df = spark.createDataFrame([("20240107193154",)], ["original_date"]) # 执行格式转换 df = df.withColumn( "formatted_datetime", date_format( to_timestamp("original_date", "yyyyMMddHHmmss"), # 解析原字符串为Timestamp类型 "yyyy-MM-dd:HH:mm:ss" # 指定目标输出格式 ) ) # 查看转换结果 df.show(truncate=False)
结果说明
运行后会得到如下输出:
+---------------+-------------------+ |original_date |formatted_datetime | +---------------+-------------------+ |20240107193154 |2024-01-07:19:31:54| +---------------+-------------------+
关于unixtimestamp失败的原因
如果之前使用unixtimestamp没得到预期结果,大概率是没指定正确的输入格式。unixtimestamp需要明确传入原字符串的格式参数,比如unixtimestamp("original_date", "yyyyMMddHHmmss"),但它返回的是时间戳数值,还需要再转成日期字符串,步骤比上面的方法繁琐,不如直接用to_timestamp + date_format组合高效。
内容的提问来源于stack exchange,提问作者Gourav Joshi
相关产品推荐
相关产品推荐

