Wordcount com PySpark

Link da documentação oficial do Hadoop:

http://hadoop.apache.org/

Link do meu Github:

https://github.com/toticavalcanti

wordcount com PySpark

Essa aula é uma continuação da passada, vamos fazer a mesma coisa executar só que ao invés de digitar comando por comando no Shell PySpark como fizemos na aula passada, iremos salvar o script inteiro em um arquivo .py, podemos chamá-lo de WordCount.py, e rodar ele utilizando:

spark-submit WordCount.py

E teremos o mesmo resultado.

O script inteiro ( WordCount.py ) é mostrado abaixo, é só copiar e colar ou baixar no meu Github:


from pyspark import SparkContext, SparkConf

#Cria a app com o nome WordCount
conf = SparkConf().setAppName("WordCount")

#Instacia o SparkContext
sc = SparkContext.getOrCreate()

#Cria o RDD com o conteúdo do shakespeare.txt
contentRDD = sc.textFile("/user/toti/textos/shakespeare.txt")

#Elimina as linha em branco
filter_empty_lines = contentRDD.filter(lambda x: len(x) > 0)

#Splita as palavras pelo espaço em branco entre elas
words = filter_empty_lines.flatMap(lambda x: x.split(' '))

#Map-Reduce da contagem das palavras
wordcount = words.map(lambda x:(x,1)) \
.reduceByKey(lambda x, y: x + y) \
.map(lambda x: (x[1], x[0])).sortByKey(False)

#Imprime o resultado
for word in wordcount.collect():
    print(word)

#Salva o resultado no HDFS dentro da pasta /user/toti/textos/Wordcount/
wordcount.saveAsTextFile("/user/toti/textos/Wordcount")

Depois de baixar ou criar um arquivo colar e salvar como WordCount.py, vamos copiar ele para o sistema de arquivo local da máquina cloudera.

Dentro da pasta /Toti, vamos criar outra pasta no mesmo nível da pasta textos, chamada scripts, dentro uma sub-pasta chamada PySpark.

Para isso vamos abrir um putty, conectar a máquina cloudera como usuário root, password cloudera e usar os comandos:


#Para ir para a raiz do sistema de arquivos local da máquina cloudera use:
cd /

#Para entrar na pasta /Toti use:
cd Toti

#Para criar a pasta /Toti/scripts/PySpark
mkdir -p scripts/PySpark

Agora vamos usar o WINSCP para copiar o WordCount.py da nossa máquina física, para essa pasta PySpark na máquina cloudera.

Depois disso, vamos entrar na pasta onde jogamos o WordCount.py, ou seja, /Toti/scripts/PySpark

Agora é só rodar o script com:

spark-submit WordCount.py

Obrigado

Até a próxima

Aula 07 – Wordcount com PySpark continuação

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>