Databricks 无法识别所有 Oracle 转换

Databricks does not recognize all Oracle transformations

我正在尝试从 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 然后以所需格式显示字符串。我的结果: