Преобразуйте строковый тип (22 июня 2021 года 1:04 вечера) в метку времени типа «МММ d, гггг чч:мм:сс а» в PysSpark

#pyspark #apache-spark-sql

Вопрос:

Я новичок в Писпарке

Я пытаюсь преобразовать строку со значением 22 июня 2021 года в 1:04 вечера в метку времени, используя приведенный ниже блок кода, но его значение равно нулю, где, как показано, тип данных-метка времени

 df = df.withColumn("date", F.from_unixtime(F.unix_timestamp("date","MMM d, yyyy hh:mm:ss a"),'yyyy-MM-dd').cast('timestamp'))
 

Ответ №1:

У date вас есть формат MMM d yyyy hh:mmaa

Для преобразования строки, подобной приведенному выше формату. Сделайте, как показано ниже

 from pyspark.sql import functions as f

df.withColumn("date_2", f.from_unixtime(f.unix_timestamp("date", 'MMM d yyyy hh:mmaa'),'MM-dd-yyyy HH:mm:ss')).show()
 

Ответ №2:

попробуйте вот это:

 df=df.withColumn("date", from_unixtime(unix_timestamp(col("date"), "MMM d, yyyy hh:mm:ss a"),"yyyy-MM-dd")).show(false)
 

Комментарии:

1. Эй, я уже пробовал описанный выше метод, он делает значения НУЛЕВЫМИ, есть ли что-нибудь, что я могу попробовать ?