Prévia do material em texto
CADERNO DE RESPOSTAS DA
ATIVIDADE PRÁTICA DE:
Projetos BIG DATA
ALUNO: Gabriel Ferraz Lima Freitas 4752264
Caderno de Resposta Elaborado por:
Prof. MSc. Guilherme Ditzel Patriota
ANO
2024
Roteiro de Atividade Prática de
Big Data
1
Prática 01 – Somatório de IDs
Questão – Qual o valor da soma de todos os campos “id” dos
filmes classificados como negativos para o banco de dados
“imdb-reviews-pt-br.csv”
ENUNCIADO: Nessa prática você deverá descobrir, utilizando sua máquina virtual
com o Hadoop ou Spark ou PySpark, qual o valor da soma de todos os campos “id”
dos filmes classificados como negativos para o banco de dados “imdb-reviews-pt-
br.csv”.
I. Apresentação do Código (não esquecer
do identificador pessoal):
from pyspark.sql import
SparkSession
# Local do arquivo CSV utilizado
csv_path = "imdb-reviews-pt-br.csv"
# Ler csv
df = spark.read.csv(csv_path,
header=True, quote="\"", escape="\"",
encoding="UTF-8")
# Processo de map e reduce
def map1(row):
# row = [id, text_en, text_pt,
sentiment]
return (row[3], int(row[0]))
def reduce1(x, y):
return x + y
resultado = (
df.rdd
.map(lambda r: map1(r))
.reduceByKey(lambda a, b:
reduce1(a, b))
.collect()
)
soma_neg = [v for (k, v) in
resultado if k == "neg"][0]
print("RU: 4752264")
II. Apresentação das Imagens/Print do
resultado (não esquecer do
identificador):
Figura 2: Resultado da soma dos IDs dos filmes
classificados como negativos.
Roteiro de Atividade Prática de
Big Data
2
print("\nSoma total dos IDs dos
filmes classificados como negativos:",
soma_neg)
Figura 1: Código do somatório dos valores do campo ID dos
filmes classificados como negativos.
III. Responda à pergunta: Qual o valor da soma de todos os campos “id” dos filmes
classificados como negativos?
Resposta: O valor é 459.568.555
Roteiro de Atividade Prática de
Big Data
3
Prática 02 – Diferença do número de palavras
totais de português para inglês dos textos
negativos
Questão – Contar palavras dos textos negativos e achar
diferença de quantidade.
ENUNCIADO: Nessa prática você deverá contar todas as palavras existentes nos textos
negativos (Português e Inglês) e então deverá encontrar quantas palavras a mais, no total, os
textos em português possuem.
Para tal, crie um script em Python ou Scala e rode-o com sua máquina virtual Hadoop ou Spark
ou PySpark, como feito na prática 1.
É necessário se preocupar em filtrar corretamente as avaliações de filmes para que apenas os
textos marcados como negativos sejam contabilizados.
I. Apresentação do Código (não esquecer do identificador
pessoal):
from pyspark.sql import SparkSession
import re
spark =
SparkSession.builder.appName("Pratica02_Palavras").getOr
Create()
# Local do arquivo CSV utilizado
csv_path = "/content/imdb-reviews-pt-br.csv"
# Ler csv
df = spark.read.csv(csv_path, header=True,
quote="\"", escape="\"", encoding="UTF-8")
# Map e Reduce
def count_words(text):
if text is None:
return 0
text = text.strip()
if text == "":
return 0
return len(re.split(r"\s+", text))
def map2(row):
# row = [id, text_en, text_pt, sentiment]
text_en = row[1]
text_pt = row[2]
return (row[3], (count_words(text_en),
count_words(text_pt)))
II. Apresentação das
Imagens/Print do
resultado (não
esquecer do
identificador):
Figura 4: Resultado da diferença da
quantidade de palavras dos textos
negativos.
Roteiro de Atividade Prática de
Big Data
4
def reduce2(a, b):
# somar tuplas (en, pt)
return (a[0] + b[0], a[1] + b[1])
resultado = (
df.rdd
.map(lambda r: map2(r))
.reduceByKey(lambda a, b: reduce2(a, b))
.collect()
)
neg_totals = [v for (k, v) in resultado if k ==
"neg"][0]
total_en = neg_totals[0]
total_pt = neg_totals[1]
diff = total_pt - total_en
print("RU: 4752264")
print("\nTotal EN (neg):", total_en)
print("Total PT (neg):", total_pt)
print("Diferença (PT - EN):", diff)
Figura 3: Código da diferença da quantidade de palavras dos textos negativos.
III. Responda à pergunta: Qual o número total de palavras a mais que os textos
negativos em português possuem em comparação com a soma total das palavras
dos textos negativos em inglês, independentemente de serem repetidas?
Resposta: Os textos negativos em português possuem 54.949 palavras a mais.
Caderno de Resposta Elaborado por:
Prof. MSc. Guilherme Ditzel Patriota