У меня есть общая функция, которая выполняется несколько раз для разных параметров. Этот метод использует UDF для манипулирования датой и годом. Является ли хорошей практикой регистрация UDF в методе, где он вызывается? Если нет, то какова лучшая практика и какова производительность при повторной регистрации одного и того же UDF?
def get_date_from_year_and_month(year_month):
"""Returns year and month in the format YYYY-MM.
year, month = year_month
return str(year) + '-' + str(month).zfill(2)
def function_that_uses_udf(param):
# Should this be done outside the function?
get_date_from_year_and_month_udf = F.udf(get_date_from_year_and_month)
df = df_old.withColumn(
'date', get_date_from_year_and_month_udf(F.struct([F.col('year'), F.col('month')]))