#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))