在 Pyspark 中处理不同的日期格式

问题描述 投票:0回答:1

我正在尝试使用 pyspark 处理不同的日期数据格式。我尝试使用 to_timestamp 但没有得到预期的输出。任何帮助将不胜感激。

以下是我的输入和预期输出

我试过的代码

# Input data
input_data = [
    "2021-06-16T13:24:44.240-05:00",
    "2011-10-20-05:00",
    "1982-09-27-06:00",
    "20/11/2021"
]

# Create a DataFrame with the input data
df = spark.createDataFrame([(i,) for i in input_data], ["input"])

dfWithDate = df.withColumn("output", F.to_date(F.to_timestamp(col("input"), "M/d/yyyy H:mm")))

dfWithDate.show()
python datetime pyspark apache-spark-sql pyspark-pandas
1个回答
0
投票

不需要使用to_timestamp,可以立即使用to_date。如果省略格式参数不能使 pyspark 正确推断格式,您需要为不同的格式创建一个何时/否则。

例如

f.when(f.col(input). contains("/"), f.to_date(input, format=y/m/d).when(...
© www.soinside.com 2019 - 2024. All rights reserved.