Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

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

Mais conteúdos dessa disciplina