-1

我有一列的日期格式为MM/dd/YYYY HH:MM:SS AM/PM. 但目前格式为字符串类型。在将这些数据加载到 Oracle 表中时,它给了我type conversion error从 String 到 Date 类型的信息。

to_date() and date_format()在 pyspark 中尝试了函数,但to_date()将我的值截断为仅日期MM/dd/YYYY并将date_format()其保留在字符串中。

有什么办法可以改变我的列的数据类型吗?

4

1 回答 1

0

您可以使用to_timestamp函数将字符串转换为时间戳格式。

from pyspark.sql.functions import *
df = spark.createDataFrame(data = [('01/07/2022 10:12:00 AM',),], schema = ['ts_as_str'])

#to_timestamp function converts to specified format of timestamp, as in 2nd argument.
df_1 = df.select(to_timestamp(df.ts_as_str, 'MM/dd/yyyy HH:mm:ss a').alias('ts_as_ts'))

df_1.printSchema()
display(df_1)

将列转换为时间戳

将转换后的数据帧加载到 oracle。Oracle 或其他 RDBMS 有自己的处理日期的方式。因此,您在 oracle 中看到的格式可能与此不同。

于 2022-01-07T12:38:47.527 回答