Transformer

Introduction à l'ingénierie des données

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Types de transformations

customer_id email state created_at
1 [email protected] New York 2019-01-01 07:00:00

 

  • Sélection d'un attribut (p. ex. « email »)
  • Conversion de valeurs codées (p. ex. « New York » -> « NY »)
  • Validation des données (p. ex. date saisie dans « created_at »)
  • Scinder une colonne en plusieurs colonnes
  • Joindre des sources multiples
Introduction à l'ingénierie des données

Exemple : scinder (Pandas)

customer_id email username domain
1 [email protected] jane.doe theweb.com
customer_df # DataFrame Pandas avec les données clients

# Scinder la colonne email en 2 colonnes sur le symbole '@'
split_email = customer_df.email.str.split("@", expand=True)

# À ce stade, split_email aura 2 colonnes : la première # avec tout avant @, et la seconde avec tout après @ # Créer 2 nouvelles colonnes à partir du DataFrame obtenu. customer_df = customer_df.assign( username=split_email[0], domain=split_email[1], )
Introduction à l'ingénierie des données

Transformer avec PySpark

Extraire des données dans PySpark

import pyspark.sql

spark = pyspark.sql.SparkSession.builder.getOrCreate()

spark.read.jdbc("jdbc:postgresql://localhost:5432/pagila",
"customer",
properties={"user":"repl","password":"password"})
Introduction à l'ingénierie des données

Exemple : jointure

Une nouvelle table des cotes

customer_id film_id rating
1 2 1
2 1 5
2 2 3
... ... ...

La table des clients

customer_id first_name last_name ...
1 Jane Doe ...
2 Joe Doe ...
... ... ... ...

 

customer_id chevauche la table des cotes

Introduction à l'ingénierie des données

Exemple : jointure (PySpark)

customer_df # DataFrame PySpark avec les données clients
ratings_df # DataFrame PySpark avec les données de cotes

# Regrouper les cotes ratings_per_customer = ratings_df.groupBy("customer_id").mean("rating")
# Joindre sur l'ID client customer_df.join( ratings_per_customer, customer_df.customer_id==ratings_per_customer.customer_id )
Introduction à l'ingénierie des données

Passons à la pratique !

Introduction à l'ingénierie des données

Preparing Video For Download...