Я обнаружил в сети следующую функцию:
def RemoveStops(data_str):
#nltk.download('stopwords')
english_stopwords = stopwords.words("english")
broadcast(english_stopwords)
# expects a string
stops = set(english_stopwords)
list_pos = 0
cleaned_str = ''
text = data_str.split()
for word in text:
if word not in stops:
# rebuild cleaned_str
if list_pos == 0:
cleaned_str = word
else:
cleaned_str = cleaned_str + ' ' + word
list_pos += 1
return cleaned_str
и затем делаю следующее:
ColumntoClean = udf(lambda x: RemoveStops(x), StringType())
data = data.withColumn("CleanedText", ColumntoClean(data[TextColumn]))
Я получаю следующую ошибку:
PicklingError: args [0] из newobj args имеет неправильный класс
Забавно, если я перезапущу тот же набор кода, он запускается и не выдает травление ошибка. Может кто-нибудь помочь мне решить эту проблему? Спасибо!