Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Munging avec Spark Partie II @ Paris Mach...

Data Munging avec Spark Partie II @ Paris Machine Learning Applications Group

Dans l’atelier précédent, nous avons vu comment Spark fait partie intégrante dans le kit de "ménage" du data scientist moderne. Les bases de Spark et son API (PySpark) ont été abordées. Nous avons vu que le concept de RDDs est assez flexible et puissant pour travailler la donnée de tout type à l’aide d’une multitude de transformations et d’actions proposées.

Nous savons bien que pour commencer à faire une analyse exploratoire et utiliser les méthodes de machine learning il faut d’abord structurer correctement ses données. C’est ce que nous aborderons dans cette deuxième partie de l’atelier.

Le programme :

• Charger et enregistrer des données volumineuses au format CSV sans souffrance

• Utiliser l’API DataFrame pour faire une analyse exploratoire simple

• Analyser la donnée via SQL avec SparkSQL (et oui, le bon et vieux SQL a toujours la côte)

• Utiliser les tableaux croisés dynamique

• Utiliser Parquet, un format de stockage performant et structuré de plus en plus utilisé en entreprise

Cette atelier sera animé par Leonardo Noleto, data scientist.

Les TPs en format Jupyter Notebook peuvent être téléchargés ici: https://goo.gl/1C7UOq

Pour installer l'image Docker nécessaire, suivre ce guide : https://docs.google.com/document/d/1ku757Irz-bv9g1IiUeBUoDaRhSpQXc-RFfTruvjmW3o/edit

Leonardo Noleto

May 04, 2017
Tweet

More Decks by Leonardo Noleto

Other Decks in Programming

Transcript

  1. Data Munging avec Spark Partie II Leonardo Noleto @leonardo_noleto Workshop

    Mercredi 3 Mai 2017 https://goo.gl/1C7UOq Les TPs corrigés sont ici :
  2. Leonardo Noleto Data Scientist Co-fondateur Toulouse Data Science @leonardo_noleto Paris

    Machine Learning Applications Group Andrei Arion Data engineer @LesFurets.com @andreiarion Mehdi Sakji Data (scientist | engineer) @ Davidson Consulting Moniteurs :
  3. Récap’ • Spark : framework généraliste traitement distribué • Driver,

    Executor • API PySpark (Python) • Transformations (Lazy) ◦ map, flatMap, filter, reduceByKey, groupByKey • Actions ◦ count, collect, take, top, takeOrdered, reduce,
  4. Représentation de données • RDDs • Data Frame en R

    ou Python Pandas • Table (base de données relationnelles)
  5. Données • Nombre de location des vélos par heure :

    ◦ data/bike_sharing/usage_hourly.csv • Données météo (température, vent, humididité) : ◦ data/bike_sharing/weather.csv
  6. Parquet • Auto- descriptif (schéma, structure, statistiques inclus dans le

    fichier) • Format colonnes (optimisation de requêtes) • Compressé (stockage performant, minimise E/S) • Indépendant du langage ou framework d’analyse Source: https://drill.apache.org/docs/parquet-format/
  7. Parquet: approche colonne vs. ligne Exemple: voici une table à

    stocker Stockage basé sur ligne : Stockage basé sur colonne :
  8. Pour aller plus loin... • Apache Spark: RDD, DataFrame or

    Dataset? → http://goo.gl/BFGrwl • Pivoting Data in SparkSQL → http://goo.gl/qtMrgn • From Pandas to Apache Spark’s DataFrame → https://goo.gl/6iyyXd
  9. Resilient Distributed Dataset (RDD) 1, 2, 3, 4, 5, 6,

    …………………………………………………………………996, 997, 998, 999, 1000 Partitions Collection d’éléments Collection d’éléments distribuée Important : cette collection est immuable