Я действительно хочу иметь возможность запускать сложные функции над целым столбцом искрового фрейма данных, как я сделал бы в Pandas с помощью функции apply.
Например, в Pandas у меня есть функция apply, которая принимает грязный домен, например sub-subdomain.subdomain.facebook.co.nz/somequerystring, и просто выводит facebook.com.
Как бы я это сделал в Spark?
Я посмотрел на UDF, но мне не ясно, как я могу запустить его на одном столбце.
Допустим, у меня есть простая функция, подобная приведенной ниже, где я извлекаю разные биты даты из столбца pandas DF:
def format_date(row):
year = int(row['Contract_Renewal'][7:])
month = int(row['Contract_Renewal'][4:6])
day = int(row['Contract_Renewal'][:3])
date = datetime.date(year, month, day)
return date-now
В Pandas Я бы назвал это следующим образом:
df['days_until'] = df.apply(format_date, axis=1)
Могу ли я добиться того же в Pyspark?