Databricks无法识别所有Oracle转换

问题描述

我正在尝试从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进行的第二次调用以所需格式显示字符串。我的结果:

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...