как выбрать и подсчитать каждое отдельное слово из файла?

hello how are you
I am fine
how are you
I am also fine
Thank you

Это файл, который у меня есть, я хочу подсчитать, сколько раз каждое слово повторяется в файле? Таким образом, вывод должен выглядеть как

(hello,1)
(how,2)
(are,2)
(you,3)

и так далее.

я пробовал это

val rdd = sc.textFile("/path")
val rdd1= rdd.map(x=>(x.distinct,x.length)).collect

но не получилось? Пожалуйста помоги.


person Learner    schedule 06.12.2020    source источник
comment
привет как дела была первая строчка, ее удалили при редактировании   -  person Learner    schedule 06.12.2020


Ответы (1)


Вы можете использовать countByValue():

rdd.map(x => x.split(" ")).flatMap(x => x).countByValue()

который возвращает карту:

Map(are -> 2, am -> 2, I -> 2, you -> 3, also -> 1, how -> 2, Thank -> 1, fine -> 2, hello -> 1)

Если вы хотите RDD, вы можете сделать

val rdd1 = sc.parallelize(rdd.map(x => x.split(" ")).flatMap(x => x).countByValue().toSeq)
person mck    schedule 06.12.2020
comment
Спасибо, это сработало, я добавил .foreach(prinln) в конце - person Learner; 06.12.2020