【问题标题】:UDF reload in PySpark在 PySpark 中重新加载 UDF
【发布时间】:2016-10-25 09:24:10
【问题描述】:

我正在使用 PySpark(在连接到 Spark 集群的 Jupyter Notebook 内)和一些 UDF。 UDF 将列表作为附加参数,我这样构造 UDF:

my_udf = F.udf(partial(my_normal_fn, list_param=list), StringType())

关于执行功能,一切正常。但我注意到 UDF 从未更新。 澄清一下:当我更新list 时,例如通过更改列表中的元素,UDF 不会更新。仍然使用带有旧列表的旧版本。即使我再次执行整个笔记本。 我必须重新启动 Jupyter 内核才能使用新版本的列表。真是烦人……

有什么想法吗?

【问题讨论】:

    标签: apache-spark pyspark udf


    【解决方案1】:

    我找到了解决办法。

    我的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。

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      相关资源
      最近更新 更多