Функция To_Date всегда возвращает ноль - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть столбец в формате строки, который я получаю через:

session.sql("select milestoneactualdate from dba")

Этот столбец содержит данные типа "20190101". Я хочу привести эту строку к дате через:

session.sql("select *, to_date(milestoneactualdate, '%YYYY%MM%DD') as datetest from dba").show()

Я тоже пробовал:

changedTypedf = df.withColumn("milestoneactualdate", to_date(df["milestoneactualdate"], '%YYYY%MM%DD').cast('Date'))

Но он всегда возвращает "ноль". Почему моя функция приведения не работает?

1 Ответ

1 голос
/ 11 апреля 2019

Ваш формат даты должен быть yyyyMMdd, см. Синтаксис шаблона формата даты .

df = spark.createDataFrame([['20190101']], ['milestoneactualdate'])
df.show()
+-------------------+
|milestoneactualdate|
+-------------------+
|           20190101|
+-------------------+

df.selectExpr('to_date(milestoneactualdate, "yyyyMMdd") as date').show()
+----------+
|      date|
+----------+
|2019-01-01|
+----------+
...