Изменение типа данных со строки в формате гггг-мм-дд на тип даты - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь преобразовать столбец в кадре данных из форматированных типов строк yyyy-MM-dd в DateType.

В настоящее время я запускаю этот код, но он не меняет тип, но он также не изменяет не удается запустить - так что я полагаю, что я что-то довольно скучно c

data.calendar = py.to_date(data.calendar, format="DateType")

Я получил этот формат от http://spark.apache.org/docs/2.2.0/api/python/_modules/pyspark/sql/functions.html#to_date, но я не уверен, что я пропал без вести

Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 18 января 2020

Я думаю, что ваш код не будет выполняться, пока вы не вызовете команду collect для фреймов данных PySpark.

Try:

from pyspark.sql.functions import to_date

# Assuming that data is your pyspark dataframe
result = data.select(to_date(data.calendar)).collect()

# or if your data does not have format 'yyyy-MM-dd'
result = data.select(to_date(data.calendar, format='some_other_format')).collect()

Spark использует ленивую оценку, что означает, что вы «ставите в очередь» операции, чтобы применяется к кадру данных. Эти операции выполняются при использовании действия, такого как collect.

1 голос
/ 18 января 2020
from pyspark.sql.functions import *
df.select(to_timestamp(df.t, 'yyyy-MM-dd').alias('dt')).collect()
...