问题描述
我正在尝试从Oracle转换为Databricks,没什么复杂的,数据是字符串类型('24 -MAR-11'),并且我试图将其更改为日期类型以将其转换回另一种格式('24 -03-2011'),但是一段时间以来我一直试图根据文档查找该句子,但找不到我想要的东西。
在我尝试过的替代方法中,有以下几种:
date_format('24-MAR-11' as 'DD-MON-YY')
to_date('24-MAR-11','dd-MON-yy')
cast('24-MAR-11',date)
cast('24-MAR-11','dd-MON-yy')
在有效的Oracle中,在Databricks中无效。
请推荐我任何方法吗?
非常感谢您,我会很注意您的评论!
致谢!
解决方法
使用函数to_date
(将字符串转换为具有可选日期格式字符串的日期)和函数date_format
,将函数以给定格式的字符串格式化以实现所需的功能。您的代码中的错误是to_date
的输入字符串应采用您输入的字符串格式,而不是您想要的字符串格式,即
%py
from pyspark.sql.functions import *
df = spark.createDataFrame([("24 Mar 11",)],["xdate"])
df.withColumn("xdate1",to_date("xdate","dd MMM yy")).show()
df.withColumn("xdate2",date_format( to_date("xdate","dd MMM yy"),"dd-MM-yyyy")).show()
在我第一次致电to_date时,我使用的是格式字符串dd MMM yy
,它是您输入字符串24 Mar 11
的格式。然后用date_format
进行的第二次调用以所需格式显示字符串。我的结果: