Я пытаюсь создать исследование когорты для отслеживания в приложении поведения пользователя, и я хочу спросить, если у вас есть какие-либо идеи о том, как я могу исключить элемент из РДА 2, который находится в РДЕ 1. Дано:Как получить разницу между двумя RDD в PySpark?
rdd1 = sc.parallelize([("a", "xoxo"), ("b", 4)])
rdd2 = sc.parallelize([("a", (2, "6play")), ("c", "bobo")])
для Exemple, чтобы иметь общий элемент между rdd1 и rdd2, мы должны просто сделать:
rdd1.join(rdd2).map(lambda (key, (values1, values2)) : (key, values2)).collect()
Что дает:
[('a', (2, '6play'))]
Таким образом, это объединение будет п ind общий элемент между rdd1 и rdd2 и взять ключ и значения только из rdd2. Я хочу сделать обратное: найти элементы, которые находятся в rdd2, а не в rdd1, и взять ключ и значения только из rdd2. Другими словами, я хочу получить элементы из rdd2, которых нет в rdd1. Таким образом, ожидаемый результат:
("c", "bobo")
Идеи? Спасибо :)
Что версия Спарк? –