как найти гласные из RDD в pyspark - PullRequest
0 голосов
/ 04 марта 2020

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

from pyspark import SparkContext,SparkConf

conf = SparkConf().setAppName("find vowel counnt").setMaster("local[*]")
sc = SparkContext()
inputRDD=sc.textFile("file:///home/vikram/data/vowel.txt")

inputRDD.collect()

['vikram is best person']

flatRDD = inputRDD.flatMap(lambda x : x.split(" "))
flatRDD.collect()

['vikram', 'is', 'best', 'person']

vowels='aeiou'

def vowel_check(flatRDD, vowels):
    final=[x for x in flatRDD.collect() if x in vowels]
    print(len(final))
    print(final)

vowel_check(flatRDD,vowels)

1 Ответ

1 голос
/ 04 марта 2020

Вы можете просто использовать регулярное выражение findall и считать. Это выполняет подсчет и производит наборы слов с их счетом гласных:

import re
flatRDD.map(lambda l: (l, len(re.findall('[aeiou]', l)))).collect()

Производство:

[('vikram', 2), ('is', 1), ('best', 1), ('person', 2)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...