['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod sem sed est ultricies, a faucibus nunc condimentum. Vestibulum ac commodo justo. Nullam faucibus massa ac elit malesuada, vel varius nisi condimentum. Nulla facilisi. Praesent venenatis metus justo, id interdum ligula ullamcorper a. Mauris tempus elit ut mi facilisis, ac commodo lacus commodo. Proin id augue vel dolor aliquet fringilla. Nulla facilisi. Mauris mattis tellus eget ante eleifend, non lobortis lacus feugiat. Donec sed diam nec nisl tempus auctor. Fusce rutrum purus eu mauris efficitur feugiat. Phasellus at arcu eget dui scelerisque egestas. Nullam at posuere elit. Donec pellentesque turpis id mi dictum, ut pharetra enim imperdiet. Sed efficitur purus a nunc eleifend, ac venenatis odio efficitur. Duis suscipit mauris sapien, sed iaculis nibh feugiat sit amet. Aliquam interdum fermentum risus, sed cursus leo molestie at. Phasellus condimentum, elit in egestas congue, purus purus sagittis leo, ut luctus quam turpis at metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed sed ipsum dui. Vivamus ut est sit amet nibh cursus lacinia. Nam blandit nisl vel sem aliquet viverra. Aliquam in turpis ac turpis fringilla cursus. Aenean id augue feugiat, aliquam quam in, cursus massa. Nulla facilisi']
Agora eu dividi o texto acima em um vetor, para realizar essa tarefa, usei a função split(" ") para poder criar um vetor. A função flatmap realiza o processamento sem alterar alterar a estrutura.
Com o texto vetorizado, podemos percorrer cada uma das posições do texto e criar um index de 1 para cada posição, formando uma estrutura (chave,valor) para cada um dos elementos do vetor
Com o conjunto (chave.valor) criado, podemos reduzir as chaves iguais para apenas uma e tratar os valores, no nosso caso, somamos os valores. Para realizar isso usamos o método reduceByKey
Agora temos uma lista contada de palavras, na qual podemos aplicar ainda mais operações. Aqui nesse exemplo apliquei um filtro buscando as palavras que possuiam mais de 3 aparições.