2017-02-21 30 views
0

Это похоже на такой тривиальный вопрос, но я не могу найти ответ нигде!Что противоположно Союзу в Pyspark

У меня есть два RDD, один с векторизованной статьей и другой с кучей стоп-слов. Мой первый инстинкт состоял в том, чтобы использовать функцию фильтра, но, видимо, вы не можете взаимодействовать с двумя RDD. Я знаю, что Union позволяет RDD взаимодействовать, но мне нужна полная противоположность этому, поэтому я могу отфильтровать все временные слова в моем первом RDD.

Любая помощь будет высоко оценена.

EDIT:

RDD1_filtered = RDD1.filter(lambda word: word not in RDD2)

Оба РДУ представляют собой список слов. Я получаю ошибку о том, что я не могу иметь два РДА взаимодействующими

+0

Можете ли вы показать код? У вас, похоже, есть кортеж в вашем RDD, так почему бы вам не отфильтровать его? –

+0

Я добавил команду, которую я пытаюсь использовать для фильтрации. – madsthaks

+0

Пожалуйста, покажите [mcve]? –

ответ

2

Это звучит, как вы хотите subtract функцию:

>>> left = sc.parallelize(range(10)) 
>>> right = sc.parallelize([2, 6]) 
>>> left.subtract(right).collect() 
[0, 1, 3, 4, 5, 7, 8, 9] 
+0

Это тот. Большое спасибо. – madsthaks

0

Если вы использовали DataFrames вы можете использовать метод Dataframe substract https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame.subtract

вычитать (другое)

Возвращает новый DataFrame содержащие строки в этом кадре, но не в другой кадр.

Edit: Кажется, что subtract также работает для RDD

+0

Использование фильтра не работает, но вычитание делает. Спасибо за это. – madsthaks