Я создал функцию для лемматизации столбца Pyspark DataFrame. Вот код:
def custom_lemmatizer(df,input_col, output_col) -> DataFrame:
"""
Lemmatizes the df's using input_column and returns
a df with lemmatized words as output_column
"""
input_col = udf(lambda x: " ".join(x))(df[input_col])
def spacy_lemma(input_col)->list:
nlp = spacy.load('en', disable=['parser', 'ner'])
doc = nlp(input_col)
return [token.lemma_ for token in doc]
spacy_udf = udf(lambda string: spacy_lemma(string), ArrayType(StringType()))
return df.withColumn(output_col, spacy_udf(input_col))
Проблема в том, что когда я тестирую его, он работает примерно через две минуты, тогда как, если я запускаю его в основной функции с другими операциями, такими как векторизация, удаление стоп-слов и т. Д .;Главное работает вечно. Кажется, что это мешает всему процессу. Уверен, что главное прекрасно, так как эффективно выполняет другие задачи. Как я могу решить эту проблему?