如何使用 pyspark 和正则表达式在字符串的 RDD 中查找以 my_str 开头的所有单词?

How to find all words starting with my_str in an RDD of strings using pyspark and regex?

我有一个字符串 RDD(全部为小写),我想使用正则表达式来匹配或查找所有以 "can" 开头的单词。我如何在 Python 中执行此操作?

例如

这样的输入
rdd = sc.parallelize(['canada','canpar','beauty','can']) 

我想要

这样的输出
['canada','canpar','can']

这是一个 RDD。

使用字符串函数

filteredRDD = rdd.filter(lambda x: x.startswith('can'))

使用 re 模块

import re
filteredRDD = rdd.filter(lambda x: re.compile('can').match(x))

您可以通过收集 filteredRDD 的内容来测试结果 filteredRDD.collect()