Как найти общее количество указанного c слова в СДР из текстового файла в pyspark с помощью rdd.sum () - PullRequest
0 голосов
/ 26 января 2020

У меня есть текстовый файл

123 Twinkle twinkle littlestar and moon
124 Twinkletwinkle little star and star
125 Twinkle twinkle littlestar and star
126 Twinkletwinkle little star and moon
127 Twinkle twinkle littlestar and moon
128 Twinkletwinkle little star and star
129 Twinkle twinkle littlestar
130 Twinkletwinkle little star

Предположим, я хочу узнать, сколько раз "звезда" появлялась как слово в файле, а не как подстрока, как маленькая звезда. А также некоторые строки имеют несколько появлений. Я хочу найти количество появлений в виде слов в каждой строке, а затем сложить их, используя rdd.sum ()

rdd.filter(lambda x: "star" in x).count()

. Приведенный выше код дает количество строк, в которых звездочка является либо словом, либо подстрокой. равно 8

Я хочу вывод таким образом, чтобы он выполнял следующее в конце

count_list=[0,2,1,1,0,2,0,1] #"star"counts in each line as word
rdd=sc.parallelize(count_list)
rdd.sum()
>> 7

1 Ответ

0 голосов
/ 27 января 2020

Вот способ, которым вы можете сделать:

textFile = spark.read.text('sample.txt')

textFile.rdd.map(lambda x: x[0].split(' ').count('star')).sum()

7
...