我正在尝试下面的简单转换。
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 HH24:MI:SS))
df.show()
但这给了我一个错误“所有基于周的模式是不支持的,因为Spark 3.0,检测到:Y,请改用SQL函数EXTRACT”
我想将数据格式化为该日期格式并将其转换为时间戳。
2条答案
按热度按时间vyu0f0g11#
应使用以下格式-
MM/dd/yyyy HH:mm:ss'
检查this页面,了解所有日期时间格式相关详细信息。
pkln4tw62#
Spark的documentation解释了时间戳模式的不同元素。注意Spark使用Java的SimpleTimeFormat解析时间戳,它使用了一组有点混乱的格式符号。在24小时表示中,与小时匹配的符号是
H
,没有数字后缀。分钟是m
,而不是M
,M
代表月份。年份由y
匹配,而不是由Y
匹配,后者用于周年份。周年份不受支持,因此您会收到此消息。在您的情况下,正确的格式应该是
MM/dd/yyyy HH:mm:ss
。