PySpark中to_timestamp()返回空值及转换报错问题求助
问题解决:Spark 3.0+日期转时间戳报错修正
错误原因
你的格式字符串'MM/DD/YYYY HH24:MI:SS'存在三个不符合Spark 3.0+日期解析规则的问题:
YYYY:这是基于周的年份,Spark 3.0起已禁止用该模式解析日期,需替换为表示公历年的yyyy。DD:表示一年中的第几天,但你的日期是06/15/2020(月/日/年),15是当月的第15天,应使用表示当月天数的dd。HH24:Spark日期格式中HH本身就代表24小时制小时,无需额外加24。
修正后的代码
from pyspark.sql import functions as F from pyspark.sql import SparkSession spark = SparkSession.builder.appName("DateConversion").getOrCreate() data = [["06/15/2020 14:04:04"]] cols = ["date"] df = spark.createDataFrame(data, cols) # 修正格式字符串 df = df.withColumn("datetime", F.to_timestamp(F.col("date"), 'MM/dd/yyyy HH:mm:ss')) df.show()
运行结果
+-------------------+-------------------+ | date| datetime| +-------------------+-------------------+ |06/15/2020 14:04:04|2020-06-15 14:04:04| +-------------------+-------------------+
内容的提问来源于stack exchange,提问作者Amaravathi Satya
相关产品推荐
相关产品推荐

