Я играл с списком Moby Word, используя Apache Spark, вот file. я первый создал RDD, используя этот текстовый файлApache Spark union method дает необъяснимый результат
lines = sc.textFile("words.txt")
А потом создал два РДА, содержащие слова, которые имеют «р» и «с» в них
plines = lines.filter(lambda x: "p" in x)
slines = lines.filter(lambda x: "s" in x)
, а затем создал объединение этих двух
union_list = slines.union(plines)
Я подсчитываю количество слов в каждом списке с помощью метода «подсчета» и вышел в 64803, 22969 и 87772 для slines, полилиний и union_list соответственно. Также 64803 + 22969 = 87772, что означает, что слова «p» и «s» отсутствуют. я создал новый RDD, содержащие слова с «р» и «S» с использованием
pslines = lines.filter(lambda x: ("p" in x) and ("s" in x))
и подсчитывал элементы, которые дали 13616, а затем создается новый РДД, содержащими слова с «р» или " с»
newlist = lines.filter(lambda x: ("p" in x) or ("s" in x))
и подсчитывали элементы, которые дали 74156, который имеет смысл причину 64803 + 22969-13616 = 74156. Что я сделал неправильно с помощью метода union? Я использую Spark 1.6 для Windows 10 и Python 3.5.1.