我应该在哪里注册Spark UDF的通用功能



i具有一个通用函数,该功能多次执行不同的参数。此方法使用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')]))

例如,在这种情况下,每次都通过火花上下文:

def squared(s):
   return s * s
spark.udf.register("squaredWithPython", squared)

不喜欢可以将其存储在数据库中的位置。

相关内容

  • 没有找到相关文章

最新更新