Преобразуйте LongType () в DateType () в pyspark, а также добавьте дату - PullRequest
0 голосов
/ 22 марта 2019

Предположим, у меня есть фрейм данных 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 все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...