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?