Uso del objeto Python personalizado en Pyspark UDF

Al ejecutar el siguiente fragmento de código PySpark:

nlp = NLPFunctions()

def parse_ingredients(ingredient_lines):
    parsed_ingredients = nlp.getingredients_bulk(ingredient_lines)[0]
    return list(chain.from_iterable(parsed_ingredients))


udf_parse_ingredients = UserDefinedFunction(parse_ingredients, ArrayType(StringType()))

Obtuve el siguiente error:_pickle.PicklingError: Could not serialize object: TypeError: can't pickle _thread.lock objects

Me imagino que esto se debe a que PySpark no puede serializar esta clase personalizada. Pero, ¿cómo puedo evitar la sobrecarga de crear instancias de este costoso objeto en cada ejecución delparse_ingredients_line ¿función?

Respuestas a la pregunta(3)

Su respuesta a la pregunta