这似乎是一个微不足道的问题,但我无法在任何地方找到答案!
我有两个RDD,一个带有矢量化文章,另一个带有一堆停用词。我的第一直觉是使用过滤器功能,但显然你不能让两个RDD以这种方式进行交互。我知道Union允许RDD进行交互,但我需要与之完全相反,所以我可以过滤掉第一个RDD中的所有停用词。
非常感谢任何帮助。
编辑:
RDD1_filtered = RDD1.filter(lambda word: word not in RDD2)
两个RDD都是单词列表。我得到一个错误,说我不能有两个RDD交互
答案 0 :(得分:3)
听起来你想要subtract功能:
>>> left = sc.parallelize(range(10))
>>> right = sc.parallelize([2, 6])
>>> left.subtract(right).collect()
[0, 1, 3, 4, 5, 7, 8, 9]
答案 1 :(得分:0)
如果您使用的是DataFrame,则可以使用Dataframe方法substract
https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.subtract
<强>减法(其他)强>
返回一个新的 DataFrame ,其中包含此框架中的行,但不包括 另一个框架。
修改:似乎subtract
也适用于RDD