如何 select 并计算文件中的每个单词?

how to select and count the each individual words from file?

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

但是没用?请帮忙。

您可以使用 countByValue():

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

其中returns张地图:

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)