WordCount en Python
Cette section comprend le code source et les instructions pour exécuter l'exemple WordCount écrit en Python.
Voici le code source du mappeur. Enregistrez ce code dans un fichier appelé "
WordCount_mapper.py:#!/usr/bin/env python
import sys
for line in sys.stdin:
(key,value) = line.split('\t')
wordList = value.split(' ')
for word in wordList:
print(word.strip() + "\t1")Voici le code source du réducteur. Enregistrez ce code dans un fichier appelé "
WordCount_reducer.py:#!/usr/bin/env python
import sys
word = ""
sum = 0
for line in sys.stdin:
(key,value) = line.split('\t')
if word == key:
sum = sum + int(value)
else:
if word != "":
print(word + "\t" + str(sum))
word = key
sum = 1
if key != "": print(key + "\t" + str(sum))Pour exécuter cet exemple pour les données stockées dans la table words1 (qui comprend les colonnes '
id et 'sentence ) au sein de la base de données 'mapreduce_db, exécutez la commande suivante :mapreduce jar /nz/export/ae/products/netezza/mapreduce/current/mapreducestreaming.
jar
-db mapreduce_db
-input 'words1' 'id' 'sentence'
-output 'results' 'word' 'count'
-mapper 'WordCount_mapper.py'
-mapper_out_key_size 20
-mapper_out_value_size 20
-file <path to WordCount_mapper.py file>
-reducer 'WordCount_reducer.py'
-reducer_out_key_size 20
-reducer_out_value size 20
-file <path to WordCount_reducer.py file>Après exécution, la commande crée un tableau " results contenant deux colonnes : word et 'count, toutes deux de type VARCHAR(20).