Skip to content

Guía Rápida para Apache Spark, SparkSQL y PySpark en WSL Ubuntu

Entonces, has escuchado hablar de PySpark y te dices: “Bueno, quiero probarlo.” Tal vez lo viste en una oferta de trabajo, o alguien en tu equipo lo mencionó en una reunión y asentiste como si supieras de qué hablaban (sí, a todos nos ha pasado).

Esta guía es para ti. Vamos a ver cómo instalar PySpark en tu laptop usando WSL con Ubuntu. No necesitas montar un clúster gigante ni pelearte con errores de Java. Solo pasos simples, ejecutando todo localmente con Python.

Vamos a:

  • Instalar PySpark
  • Configurar un entorno virtual limpio
  • Descargar un dataset desde Kaggle
  • Explorar un poco los datos usando DataFrames

Y ya está. Nada complicado. Nada de teoría pesada. Solo cosas prácticas que puedes ejecutar y aprender en el camino.


¿Qué es Spark y por qué debería importarte?

La versión rápida: Spark es un motor de procesamiento distribuido. Sirve para trabajar con grandes volúmenes de datos y hacerlo rápido. Pero de verdad rápido. No ese tipo de rápido de “espera 10 minutos para que termine tu join en pandas”, sino velocidad a nivel de clúster.

¿La buena noticia? No necesitas entender todo lo que pasa detrás desde el comienzo. Solo hace falta tener claro esto:

  • Apache Spark es el motor
  • SparkSQL te deja escribir consultas SQL dentro de Spark
  • PySpark es la forma de usar Spark desde Python
  • RDDs y DataFrames son las formas en que Spark maneja los datos internamente

Nos vamos a quedar con PySpark por ahora. No vamos a instalar toda la plataforma de Spark completa porque queremos mantenerlo simple. PySpark es más que suficiente para aprender y hacer pruebas en local.


¿Qué vamos a usar?

Vamos a trabajar con un dataset llamado “Most Streamed Songs” de Spotify. Está disponible en Kaggle y es perfecto para empezar a hacer análisis básicos.

Vamos a explorar un poco los datos y hacer unas cuantas transformaciones simples usando DataFrames con PySpark. La idea es entender cómo funciona Spark sin ahogarnos en configuraciones ni arquitecturas complejas.

¿Estás en macOS? No hay problema. La mayoría de pasos son iguales. Solo mencionaré un par de cosas distintas cuando sea necesario.


RDDs vs DataFrames (y sí, vamos a elegir)

Para ponerlo fácil:

  • RDDs son como ladrillos en bruto. Muy flexibles, muy potentes, pero algo pesados si estás recién empezando. Geniales si necesitas control total sobre cómo se procesa todo.
  • DataFrames son la versión más amigable. Optimizados, más fáciles de escribir y muy parecidos a trabajar con SQL o pandas.

En este tutorial, vamos con DataFrames. No hay razón para complicarse con RDDs a menos que tengas una necesidad muy específica. Spark ya hace el trabajo duro detrás, así que tú te puedes concentrar en escribir lógica y obtener resultados.


¿Por qué solo usamos PySpark?

¿La verdad? Porque es suficiente.

No necesitas montar toda la bestia de Apache Spark para empezar a aprender. PySpark se instala rápido, funciona bien en local, y te da acceso a casi todo lo que usarías en producción: consultas estilo SQL, transformaciones, agregaciones y más.

Y más adelante, si quieres escalar a clústeres o usar Spark en la nube, ya tendrás una base sólida.

Configuración del Entorno


Requisitos previos

WSL Ubuntu
Necesitas tener WSL con Ubuntu ya instalado en tu máquina con Windows. Esta guía no cubre cómo instalar WSL, pero si ya lo hiciste, seguimos.

Python 3
Python debería estar instalado dentro de WSL. Pero por si acaso, aquí te dejo cómo verificar e instalarlo:

sudo apt-get update
sudo apt-get install python3

Confirma la instalación con:

python3 --version

Instalando PySpark

Vamos a crear un entorno virtual e instalar PySpark. No es tan complicado como suena. Piénsalo como armar una sandbox donde puedes hacer pruebas sin romper nada del sistema.

Paso 1: Crea tu carpeta de proyecto

Vamos a mantener todo ordenado. Abre tu terminal y escribe:

mkdir pyspark_shell
cd pyspark_shell

Paso 2: Crear y Activar el Entorno Virtual

Queremos aislar este proyecto del resto de tu sistema Python.

Primero asegúrate de tener el paquete necesario:

sudo apt-get install python3-venv

Ahora crea y activa el entorno:

python3 -m venv pysparkshell_env
source pysparkshell_env/bin/activate

Esto creará y activará un entorno virtual llamado pysparkshell_env. Deberías ver (pysparkshell_env) al inicio de tu línea de comando, lo que indica que el entorno está activo.

Paso 3: Instala Java (sí, Spark lo necesita)

Spark corre sobre Java, así que tenemos que instalarlo primero:

sudo apt-get install default-jdk

Después, dile a tu sistema dónde está instalado Java:

export JAVA_HOME=/usr/lib/jvm/default-java

Eso ayuda a que Spark encuentre lo que necesita para funcionar correctamente.

Paso 4: Instala PySpark (ahora sí)

Antes de instalar PySpark, instala wheel para evitar un posible error:

pip install wheel

Ahora instala PySpark:

pip install pyspark

Verifica que todo se instaló bien con:

pyspark --version

Si ves la información de la versión, ya estás listo para empezar.

Nota rápida para usuarios de macOS

Si estás en macOS, casi todos los pasos son iguales. La diferencia principal es que probablemente usarás Homebrew en vez de apt-get para instalar Python o Java. Pero después de eso, sigues los mismos pasos para el entorno virtual e instalar PySpark.

Descargar el Conjunto de Datos de Kaggle

Este proyecto usa un dataset llamado “Most Streamed Songs” de Spotify. Está en Kaggle y es una buena opción para quienes recién empiezan. Tiene buen formato, no es muy grande, y da para hacer cosas interesantes.

Si ya tienes cuenta en Kaggle, perfecto. Entra, busca el dataset y descárgalo. Si no, necesitas crear una. Es gratis, pero sí, es un paso extra.

Para ahorrarte tiempo, también hemos dejado el archivo CSV listo para descargar aquí mismo. Así que si quieres saltarte Kaggle, simplemente descárgalo directo. Sin login, sin tokens, sin enredos.

👉 [Descargar el CSV de Spotify Most Streamed Songs]
Solo haz clic, guárdalo, y listo.

Guarda el archivo dentro de la carpeta de proyecto que creaste, la misma pyspark_shell. Tener todo en un solo sitio facilita las cosas cuando empecemos a escribir código.

Arrancando PySpark y cargando los datos

Bien, ya llegaste hasta aquí. PySpark está instalado, el dataset está en tu carpeta de proyecto, y ya puedes empezar a jugar con código.

Paso 1: Abre la consola de PySpark

En tu terminal, escribe:

pyspark

Esto abrirá la consola interactiva de PySpark. Es como una consola de Python, pero para Spark. Puedes escribir comandos y ver resultados al instante.

Paso 2: Carga el dataset

Ahora que estás dentro de la consola, vamos a cargar el CSV en un DataFrame.

Un DataFrame es como una hoja de Excel, pero con esteroides. Puedes filtrarlo, hacer queries, agrupar, lo que quieras. Y Spark se encarga del trabajo pesado.

Pega esto en la consola:

# Cargar el conjunto de datos CSV
songs_df = spark.read.csv("Spotify_Most_Streamed_Songs.csv", header=True, inferSchema=True)

# Mostrar las primeras filas del DataFrame
songs_df.show(5)

¿Y qué hace esto?

  • Carga el archivo CSV en un DataFrame llamado songs_df
  • header=True le dice a Spark que use los nombres de las columnas
  • inferSchema=True deja que Spark detecte automáticamente los tipos de datos
  • show(5) muestra las primeras cinco filas

Paso 3: Realizar Análisis Básico de Datos

Vamos a mantenerlo simple pero útil. Queremos entender cómo se ve el dataset y hacer un par de queries.

3.1: Ver el esquema de columnas

Para ver qué columnas tienes y qué tipo de datos contienen:

songs_df.printSchema()

3.2: Contar cuántos registros hay

Para saber cuántos registros tiene el dataset:

print(f"Total de registros: {songs_df.count()}")

3.3: Consultas básicas con SparkSQL

Spark también te permite usar SQL.

Primero, registra el DataFrame como una vista temporal y luego haz una consulta SQL para ver los 5 artistas más escuchados:

songs_df.createOrReplaceTempView("songs")

# Consulta de ejemplo para encontrar los 5 artistas con el mayor número de streams
artist_streams = spark.sql("SELECT `artist(s)_name`, SUM(streams) AS total_streams FROM songs GROUP BY `artist(s)_name` ORDER BY total_streams DESC LIMIT 5")
artist_streams.show()

Esto agrupa por artista, suma los streams, ordena de mayor a menor, y te muestra los primeros cinco.

Y listo. Acabas de correr SQL dentro de Spark. Nada mal, ¿ah?

¿Qué hemos hecho hasta ahora?

Vamos a hacer un repaso rápido:

  • Configuraste un entorno virtual limpio y le instalaste PySpark
  • Descargaste un dataset y lo guardaste en tu proyecto
  • Abriste la consola de PySpark y cargaste los datos en un DataFrame
  • Ejecutaste algunos comandos y una consulta SQL para explorar los datos

Eso ya es una base sólida. Tienes un entorno funcionando y datos reales. Desde acá puedes seguir filtrando por año, graficar con herramientas de Python por fuera de Spark, o incluso probar algún modelo básico de machine learning si se te antoja.

Published inData Engineering