udf在pyspark中重新加载

f87krz0w  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(438)

我正在使用pyspark(在一个jupyter笔记本中,它连接到一个spark集群)和一些udf。自定义项以列表作为附加参数,我这样构造自定义项: my_udf = F.udf(partial(my_normal_fn, list_param=list), StringType()) 在执行函数方面,一切正常。但我注意到自定义项从未更新过。澄清:当我更新 list 例如,通过更改列表中的元素,udf不会更新。带旧列表的旧版本仍在使用。即使我再次执行整个笔记本。为了使用列表的新版本,我必须重新启动jupyter内核。真烦人。。。
有什么想法吗?

omhiaaxx

omhiaaxx1#

我找到了解决办法。
我的 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

我成功了。更多信息请参见此处。
感谢sparkml slack channel的用户drjones78。

相关问题