El Shell de Spark és una eina interactiva que permet als desenvolupadors executar codi Spark en temps real. És una manera excel·lent de provar i depurar codi, així com d'explorar dades de manera interactiva. En aquest tema, aprendrem com utilitzar el Shell de Spark, les seves funcionalitats bàsiques i alguns exemples pràctics.
- Introducció al Shell de Spark
El Shell de Spark proporciona una interfície interactiva per treballar amb Spark. Hi ha dos tipus principals de Shells de Spark:
- Spark Shell (Scala): Utilitza Scala com a llenguatge de programació.
- PySpark Shell: Utilitza Python com a llenguatge de programació.
- Iniciant el Shell de Spark
Spark Shell (Scala)
Per iniciar el Spark Shell en Scala, simplement executa la següent comanda al terminal:
PySpark Shell
Per iniciar el PySpark Shell, executa la següent comanda al terminal:
- Funcionalitats Bàsiques del Shell de Spark
3.1. Crear un RDD
Un RDD (Resilient Distributed Dataset) és la unitat bàsica de dades en Spark. A continuació es mostra com crear un RDD en el Spark Shell:
Scala
Python
3.2. Transformacions i Accions
Les transformacions són operacions que es realitzen sobre un RDD i retornen un nou RDD. Les accions són operacions que retornen un valor al driver program després de realitzar càlculs sobre un RDD.
Scala
// Transformació: Filtrar els números parells val evenNumbers = rdd.filter(x => x % 2 == 0) // Acció: Comptar els elements val count = evenNumbers.count() println(s"Count of even numbers: $count")
Python
# Transformació: Filtrar els números parells even_numbers = rdd.filter(lambda x: x % 2 == 0) # Acció: Comptar els elements count = even_numbers.count() print(f"Count of even numbers: {count}")
3.3. Treballar amb DataFrames
Els DataFrames són una API de més alt nivell que els RDDs i proporcionen una manera més eficient de treballar amb dades estructurades.
Scala
Python
- Exemples Pràctics
Exemple 1: Comptar Paraules
Aquest exemple mostra com comptar la freqüència de paraules en un text utilitzant el Shell de Spark.
Scala
val textFile = sc.textFile("path/to/text/file") val counts = textFile.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey(_ + _) counts.collect().foreach(println)
Python
text_file = sc.textFile("path/to/text/file") counts = text_file.flatMap(lambda line: line.split(" ")) \ .map(lambda word: (word, 1)) \ .reduceByKey(lambda a, b: a + b) counts.collect().foreach(print)
Exemple 2: Operacions amb DataFrames
Aquest exemple mostra com realitzar operacions bàsiques amb DataFrames.
Scala
val df = spark.read.json("path/to/json/file") df.printSchema() df.select("name", "age").show() df.filter(df("age") > 21).show()
Python
df = spark.read.json("path/to/json/file") df.printSchema() df.select("name", "age").show() df.filter(df["age"] > 21).show()
- Exercicis Pràctics
Exercici 1: Crear un RDD i Filtrar Elements
- Crea un RDD amb els números del 1 al 10.
- Filtra els números que són majors que 5.
- Mostra els resultats.
Solució (Scala)
val data = 1 to 10 val rdd = sc.parallelize(data) val filtered = rdd.filter(_ > 5) filtered.collect().foreach(println)
Solució (Python)
data = range(1, 11) rdd = sc.parallelize(data) filtered = rdd.filter(lambda x: x > 5) filtered.collect().foreach(print)
Exercici 2: Treballar amb DataFrames
- Llegeix un fitxer JSON en un DataFrame.
- Mostra l'esquema del DataFrame.
- Selecciona i mostra les columnes "name" i "age".
- Filtra i mostra les files on l'edat és superior a 30.
Solució (Scala)
val df = spark.read.json("path/to/json/file") df.printSchema() df.select("name", "age").show() df.filter(df("age") > 30).show()
Solució (Python)
df = spark.read.json("path/to/json/file") df.printSchema() df.select("name", "age").show() df.filter(df["age"] > 30).show()
- Conclusió
El Shell de Spark és una eina poderosa per interactuar amb Spark de manera interactiva. Hem après com iniciar el Shell de Spark, crear RDDs, realitzar transformacions i accions, i treballar amb DataFrames. A més, hem vist alguns exemples pràctics i exercicis per reforçar els conceptes apresos. Amb aquesta base, estàs preparat per explorar més funcionalitats de Spark i aplicar-les als teus projectes.
Curs d'Apache Spark
Mòdul 1: Introducció a Apache Spark
Mòdul 2: Conceptes Bàsics de Spark
Mòdul 3: Processament de Dades amb Spark
Mòdul 4: Programació Avançada amb Spark
Mòdul 5: Optimització i Millora del Rendiment
- Comprendre les Tasques de Spark
- Emmagatzematge en Memòria i Persistència
- Gestió de Memòria
- Optimització d'Aplicacions Spark
Mòdul 6: Spark al Núvol
Mòdul 7: Aplicacions del Món Real i Estudis de Cas
- Processament de Dades en Temps Real
- Anàlisi de Big Data
- Pipelines d'Aprenentatge Automàtic
- Estudis de Cas