我有一个长时间运行的SparkContext,我在其中定义了一个UDF,它接收大量数据作为输入。我注意到这个UDF使用的内存在SparkContext终止之前不会被释放。我希望找到一种方法在应用程序终止之前声明这个内存。我试过以下没有运气:
注册另一个名称相同的UDF,以诱骗Spark释放第一个使用的内存。
我在Spark中检查了ContextCleaner,但似乎其中的所有功能都是私有的,用户无法使用。
我检查了UDFRegistration类,它有注册UDF的方法,但没有注册它们。
当SparkContext还活着时,有没有办法在Spark中删除/销毁UDF?