我正在尝试使用 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()
不需要使用to_timestamp,可以立即使用to_date。如果省略格式参数不能使 pyspark 正确推断格式,您需要为不同的格式创建一个何时/否则。
例如
f.when(f.col(input). contains("/"), f.to_date(input, format=y/m/d).when(...