PySpark 中的 UDF 重新加载
UDF reload in PySpark
我正在使用 PySpark(在连接到 Spark 集群的 Jupyter Notebook 中)和一些 UDF。 UDF 将列表作为附加参数,我这样构造 UDF:
my_udf = F.udf(partial(my_normal_fn, list_param=list), StringType())
关于执行功能,一切正常。但我注意到 UDF 从未更新过。
澄清一下:当我更新 list
时,例如通过更改列表中的元素,UDF 不会更新。仍然使用带有旧列表的旧版本。即使我再次执行整个笔记本。
我必须重新启动 Jupyter 内核才能使用新版本的列表。这真的很烦人...
有什么想法吗?
我找到了解决方案。
我的 my_normal_fn
确实有以下签名:
def my_normal_fn(x, list_param=[]):
dosomestuffwith_x_and_list_param
改成
def my_normal_fn(x, list_param):
dosomestuffwith_x_and_list_param
成功了。有关详细信息,请参阅 here。
感谢 SparkML-Slack 频道的用户 Drjones78。
我正在使用 PySpark(在连接到 Spark 集群的 Jupyter Notebook 中)和一些 UDF。 UDF 将列表作为附加参数,我这样构造 UDF:
my_udf = F.udf(partial(my_normal_fn, list_param=list), StringType())
关于执行功能,一切正常。但我注意到 UDF 从未更新过。
澄清一下:当我更新 list
时,例如通过更改列表中的元素,UDF 不会更新。仍然使用带有旧列表的旧版本。即使我再次执行整个笔记本。
我必须重新启动 Jupyter 内核才能使用新版本的列表。这真的很烦人...
有什么想法吗?
我找到了解决方案。
我的 my_normal_fn
确实有以下签名:
def my_normal_fn(x, list_param=[]):
dosomestuffwith_x_and_list_param
改成
def my_normal_fn(x, list_param):
dosomestuffwith_x_and_list_param
成功了。有关详细信息,请参阅 here。
感谢 SparkML-Slack 频道的用户 Drjones78。