如何使用RDD.sum()从pyspark中的文本文件中查找RDD中特定单词的总计数

如何使用RDD.sum()从pyspark中的文本文件中查找RDD中特定单词的总计数,pyspark,substring,rdd,Pyspark,Substring,Rdd,我有一个文本文件 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 1

我有一个文本文件

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
假设我想知道“星”在文件中作为一个单词出现了多少次,而不是像littlestar那样作为子字符串出现。还有一些线条具有多重外观。我想找到每行中作为单词的外观计数,然后使用rdd.sum()求和

上面的代码给出了以星号作为单词或子字符串的行数,两者都是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

以下是一种方法:

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

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

7

当我从pyspark import SparkConf,SparkContext sc=SparkContext.getOrCreate()test=sc.textfile('test.txt')和do
test.map(lambda x:x[0].split('').count('star').sum()读取如下文本文件时,我想知道为什么它不起作用。很高兴它有帮助,你用的是哪个版本?我用的是2.4.4不确定,不知道确切的原因。我经常使用spark会话来读取txt、csv文件。
textFile = spark.read.text('sample.txt')

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

7