Добавление/вычитание даты и времени в pyspark.pandas

#python #pandas #datetime #pyspark #databricks

Вопрос:

Я получил ошибку в вычислении даты с помощью pyspark.pandas. Есть ли какой-нибудь способ вычислить дату с помощью pyspark.padnas?

 import pyspark.pandas from datetime import timedelta  df = pd.DataFrame({'year': [2015, 2016],  'month': [2, 3],  'day': [4, 5]}) df = pd.to_datetime(df) df   timedelta(days=3) # this yield same error df.add(timedelta(days=3))  

это и есть эта ошибка TypeError: Addition can not be applied to datetimes.

в то время как ниже работает

 df = df.to_pandas() df   timedelta(days=3)  

Ответ №1:

согласно документам spark :

пользователи pandas могут получить доступ к полному API pandas, вызвав DataFrame.to_pandas(). фрейм данных pandas-on-Spark и фрейм данных pandas похожи. Однако первый распределен, а второй находится в одной машине. При преобразовании друг в друга данные передаются между несколькими машинами и одной клиентской машиной.

поэтому сначала преобразуйте фрейм данных spark в фрейм данных pandas:

 import pyspark.pandas from datetime import timedelta  df = pd.DataFrame({'year': [2015, 2016],  'month': [2, 3],  'day': [4, 5]}) df = df.to_pandas() # here  df = df.to_datetime(df) df   timedelta(days=3) # this yield same error df.add(timedelta(days=3))