Crear una base RDD y transformarla
El volumen de datos no estructurados (líneas de registro, imágenes, archivos binarios) existente está aumentando de forma espectacular, y PySpark es un marco excelente para analizar este tipo de datos mediante RDD. En este ejercicio de 3 partes escribirás código para calcular las palabras más frecuentes en Obras completas de William Shakespeare.
Estos son los breves pasos que debes dar para escribir el programa de recuento de palabras:
- Crea una base RDD a partir del archivo
Complete_Shakespeare.txt
. - Utiliza la transformación de RDD para crear una lista larga de palabras a partir de cada elemento de la base RDD.
- Elimina las palabras vacías de tus datos.
- Crea el par RDD en el que cada elemento sea una tupla par de
('w', 1)
- Agrupa los elementos del par RDD por clave (palabra) y suma sus valores.
- Intercambia las claves (palabra) y los valores (recuentos) de forma que las claves sean el recuento y el valor sea la palabra.
- Por último, ordena el RDD en orden descendente e imprime las 10 palabras más frecuentes y sus frecuencias.
En este primer ejercicio crearás una base RDD a partir del archivo Complete_Shakespeare.txt
y la transformarás para crear una lista larga de palabras.
Recuerda que ya tienes sc
de SparkContext disponible en tu espacio de trabajo. También se ha cargado una variable file_path
(que es la ruta del archivo Complete_Shakespeare.txt
).
Este ejercicio forma parte del curso
Fundamentos de big data con PySpark
Instrucciones de ejercicio
- Crea un RDD llamado
baseRDD
que lea las líneas defile_path
. - Transforma el
baseRDD
en una lista larga de palabras y crea un nuevosplitRDD
. - Cuenta el número total de palabras en
splitRDD
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Create a baseRDD from the file path
baseRDD = sc.____(file_path)
# Split the lines of baseRDD into words
splitRDD = baseRDD.____(lambda x: x.split())
# Count the total number of words
print("Total number of words in splitRDD:", splitRDD.____())