Предположим, у меня есть фрейм данных df
со столбцом birth_date
, который имеет значения ('123', '5345', 234345 ') и т. Д. Сначала я читаю фрейм данных из csv, используя
df = sqlContext.read.csv('s3://path/to/file',header = TRUE)
Каждый столбец читается как StringType (), поэтому я сначала преобразовываю столбец birth_date
в LongType () (я должен читать его как LongType по некоторым другим причинам, я знаю, что могу читатьэто также целочисленное значение, но давайте не будем вдаваться в это прямо сейчас), используя следующее
df = df.withColumn('birth_date',df['birth_date'].cast(LongType()))
Теперь, как мне сделать столбец birth_date
в DateType, а также добавитьпромежуточные значения, которые содержит столбец, как число дней с датой «1960-01-01»?
Я пытался использовать метод date_add date_add , используя следующую команду, но я очень новыйpyspark и не понимаю, как операции со столбцами ведут себя по-разному, поэтому я застрял.
Вот что я пытался сделать:
df= df.withColumn('birth_date',date_add("1960-01-01",'birth_date'))
, и я получаю этоошибка
py4j.Py4JException: Method date_add([class org.apache.spark.sql.Column, class java.lang.String]) does not exist
Все мои операции выполняются в pyspark Databricks, если это имеет значениеt все.