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

Data NoBlaBla: Data Munging avec Spark - Partie II

Data NoBlaBla: Data Munging avec Spark - Partie II

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.

Mais, nous savons bien que pour commencer à faire une analyse exploratoire et utiliser les méthodes de machine learning il faut d’abord structurer correctement sa donnée. C’est ce que nous aborderons dans cette deuxième partie de l’atelier. Voici 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

Pour suivre l'atelier, vous devez installer l'image docker ci-dessous:
docker pull noleto/pyspark-jupyter

Updated: Les TPs en format Jupyter Notebook sont disponibles ici: https://goo.gl/CA3MYX

Plus d'info: http://www.meetup.com/Tlse-Data-Science/events/228475400/

Toulouse Data Science

February 11, 2016
Tweet

More Decks by Toulouse Data Science

Other Decks in Programming

Transcript

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

    NoBlaBla Jeudi 11 Février et Samedi 13 Février 2016 Les TPs corrigés sont disponibles ici : https://goo.gl/CA3MYX
  2. 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,
  3. Représentation de données • RDDs • Data Frame en R

    ou Python Pandas • Table (base de données relationnelles)
  4. 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 Image docker: docker pull noleto/pyspark-jupyter
  5. 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/
  6. Parquet: approche colonne vs. ligne Exemple: voici une table à

    stocker Stockage basé sur ligne : Stockage basé sur colonne :
  7. 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
  8. A venir • Partie III - Usage avancé et Natural

    Language Processing : résoudre un problème de Record Linkage
  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