apache-spark - 在 PySpark 映射中使用带有 for 循环的函数
问题描述
我正在尝试从我的 RDD 中的每个单词中删除特殊字符:
special_characters = '~!@#$%^&*()_+-=[]{};:,<.>/?'
def remove_special_characters(word):
for character in special_characters[0: len(special_characters)]:
word = word.replace(character, '')
return word
words = lines.flatMap(lambda line: line.split(" "))
words_lower = words.map(lambda word: word.lower())
clean_words_1 = words_lower.map(lambda word: remove_special_characters(word))
clean_words_2 = words_lower.map(remove_special_characters)
每个单词只替换第一个特殊字符。
解决方案
return 需要放在 for 循环之外。
推荐阅读
- excel - 如何通过 VBA 使用我的 powerpoint 模板来构建我想要的幻灯片?
- android - 如何在一天中创建多个警报,并且这将在每周选定的日子重复?
- sql - 循环遍历表以连接行
- azure - Azure 指标的采样间隔
- android - AutoCompleteTextView - 更改方向 - 横向模式下消息“IndexOutOfBoundsException”崩溃
- python - 无法提取正确/所有信息需要
- java - 无法在自定义 gradle 插件实现中使用外部依赖项
- amazon-web-services - 您可以为 sns 电子邮件添加样式吗?
- azure - Azure 函数批处理大小
- angular - 失去焦点Angular表单时验证错误消失