Préparer le fichier texte¶

Télécharger le fichier shakespeare.txt¶

In [ ]:
! wget https://hhmida.github.io/tp-hadoop/assets/shakespeare.txt

Mettre le fichier sous HDFS¶

In [ ]:
! hadoop fs -put shakespeare.txt

Créer le fichier wordcount.py¶

%%file indique à Jupyter de sauvegarder le contenu de la cellule dans un fichier

In [ ]:
%%file wordcount.py
from mrjob.step import MRStep
from mrjob.job import MRJob
class WordCount(MRJob):
    def steps(self):
        return [MRStep(mapper=self.mapper_get_words, reducer=self.reducer_count_words)]
    def mapper_get_words(self, _, line):
        for word in line.split():
            yield word, 1
    def reducer_count_words(self, key, values):
        yield key, sum(values)
if __name__ == '__main__':
    WordCount.run()

Test en local¶

In [ ]:
! python3 wordcount.py shakespeare.txt

Exécuter sur Hadoop¶

In [ ]:
! python3 wordcount.py -r hadoop hdfs:///user/uti/shakespeare.txt