text.map(lambda s: s.replace("\d", "", text))
Вы путаете встроенную функцию map()
в Python с DataFrame.map()
Spark ... Нет, параметр text
там недопустим,
Попробуйте это
def lower_no_digit(word):
return lower(word.replace(r'\d+', ''))
counts = text.map(lower_no_digit) \
.filter(lambda w : len(w) > 0) \
.map(lambda word: (word, 1)) \
, который отображает функцию по словам и отфильтровывает пустые перед применением (word, 1)
В сторону - Выполнението же самое в SparkSQL несколько проще и не требует ручного ввода (word, 1)
Я пытался использовать collect ()
Do map(lambda x : ... , df.collect())
.Это приведет все данные к локальному драйверу Spark и не позволит запустить среду распределенной обработки .