0Pricing
Scala for Backend Engineering & Functional Programming · Leçon

RDD et DataFrames

Abstractions de données Spark

RDD et DataFrames est une leçon Scala for Backend Engineering & Functional Programming gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Scala for Backend Engineering & Functional Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.

Qu'est-ce qu'Apache Spark ?

Apache Spark est un moteur distribué destiné au traitement de données à grande échelle. Il répartit les données sur un cluster et exécute les calculs en parallèle. Scala est le langage natif de Spark, ce qui fournit une API concise et sensible aux types.

Le RDD

Le Resilient Distributed Dataset (RDD) est l'abstraction de bas niveau de Spark : une collection immuable et partitionnée qui peut être traitée en parallèle et reconstruite à partir de sa lignée si un nœud tombe en panne.

SparkContext et SparkSession

Vous accédez à Spark par l'intermédiaire d'une SparkSession. Son sparkContext crée des RDD ; la session elle-même crée des DataFrames et exécute du SQL.

import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder()
  .appName("Demo")
  .master("local[*]")
  .getOrCreate()

Créer un RDD

Construisez un RDD en parallélisant une collection locale ou en lisant un fichier. Chaque partition est traitée par une tâche distincte.

val sc = spark.sparkContext
val numbers = sc.parallelize(Seq(1, 2, 3, 4, 5))
val lines   = sc.textFile("data.txt")

Le DataFrame

Un DataFrame est une table distribuée comportant des colonnes nommées et typées — comme un RDD de lignes accompagné d'un schéma. L'optimiseur Catalyst peut planifier et optimiser les requêtes sur les DataFrames.

Créer un DataFrame

Créez des DataFrames à partir de collections (avec toDF) ou en lisant des fichiers structurés tels que CSV, JSON ou Parquet.

import spark.implicits._

val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
val csv = spark.read.option("header", "true").csv("people.csv")

Inspecter un DataFrame

Utilisez show pour afficher les lignes, printSchema pour voir les types de colonnes et count pour obtenir le nombre de lignes.

df.printSchema()
df.show()
println(df.count())

Datasets et sécurité des types

Un Dataset est un DataFrame typé : Dataset[T], où T est une classe de cas. Il combine l'optimisation des DataFrames avec la vérification des types à la compilation.

import spark.implicits._

case class Person(name: String, age: Int)
val ds = Seq(Person("Alice", 30)).toDS()

RDD, DataFrame ou Dataset

Choisissez selon vos besoins :

  • RDD — contrôle total, aucun schéma, aucun optimiseur
  • DataFrame — schéma et optimisation Catalyst, lignes non typées
  • Dataset — schéma, optimisation et sécurité des types

Convertir entre ces abstractions

Convertissez un DataFrame en RDD avec .rdd, ou un RDD de classes de cas en DataFrame avec .toDF. Les Datasets se convertissent également en DataFrames avec .toDF.

val rdd = df.rdd          // DataFrame -> RDD[Row]
val back = ds.toDF()      // Dataset -> DataFrame

Collection Scala classique

Conceptuellement, un DataFrame se comporte comme une collection Scala, mais distribuée. Voici l'équivalent local et autonome qui permet de se faire une idée.

object Main {
  case class Person(name: String, age: Int)
  def main(args: Array[String]): Unit = {
    val people = Seq(Person("Alice", 30), Person("Bob", 25))
    people.foreach(p => println(s"${p.name}: ${p.age}"))
  }
}

Vérification rapide

Quelle abstraction fournit un schéma, l'optimisation Catalyst et la sécurité des types à la compilation ?

Récapitulatif

Vous avez découvert les abstractions de données de Spark :

  • SparkSession comme point d'entrée
  • RDD — collection distribuée de bas niveau
  • DataFrame — table distribuée avec schéma
  • Dataset — DataFrame typé

Ensuite : transformations et actions.

Questions Fréquemment Posées

La leçon « RDD et DataFrames » est-elle gratuite ?

Oui — le texte complet de « RDD et DataFrames » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Scala for Backend Engineering & Functional Programming, passe à CoddyKit PRO. Le cours Scala for Backend Engineering & Functional Programming comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « RDD et DataFrames » ?

Abstractions de données Spark Tu pratiques Scala for Backend Engineering & Functional Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Scala for Backend Engineering & Functional Programming ?

Aucune expérience préalable n'est requise. Scala for Backend Engineering & Functional Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « RDD et DataFrames » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Scala for Backend Engineering & Functional Programming ?

Oui. Chaque leçon Scala for Backend Engineering & Functional Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. RDD et DataFrames
  2. Transformations et actions
  3. Spark SQL
  4. Agrégations
← Retour à Scala for Backend Engineering & Functional Programming