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

Data NoBlaBla : Data Munging avec Apache Spark

Data NoBlaBla : Data Munging avec Apache Spark

Apache Spark est un framework open source généraliste, conçu pour le traitement distribué de données. C’est une extension du modèle MapReduce avec l’avantage de pouvoir traiter les données en mémoire et de manière interactive. Spark offre un ensemble de composants pour l’analyse de données: Spark SQL, Spark Streaming, MLlib (machine learning) et GraphX (graphes).

Cet atelier se concentrer sur les fondamentaux de Spark et le paradigme de traitement de données avec l’interface de programmation Python (plus précisément PySpark).

L’installation, configuration, traitement sur cluster, Spark Streaming, MLlib et GraphX ne seront pas abordés dans cet atelier.

A la fin de cet atelier, vous serez capable de :

- Comprendre les fondamentaux de Spark et le situer dans l'écosystème Big Data ;

- Savoir la différence avec Hadoop MapReduce ;

- Utiliser les RDD (Resilient Distributed Datasets) ;

- Utiliser les actions et transformations les plus courantes pour manipuler et analyser des données ;

- Ecrire un pipeline de transformation de données ;

- Utiliser l’API de programmation PySpark.

Les TPs sont disponibles sous https://goo.gl/VLgQSk

Toulouse Data Science

December 08, 2015
Tweet

More Decks by Toulouse Data Science

Other Decks in Programming

Transcript

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

    NoBlaBla Télécharger les TP corrigés ici : https://goo. gl/VLgQSk Mardi 8 Décembre et Samedi 12 Décembre 2015
  2. 5 000 000 000 Go 2003 Début des civilisations 3

    500 avant J.C. * Digital Universe Study by IDC, 2012. 2011 48 heures 2013 10 min 40 2020 zettaoctets * Production de la donnée
  3. Dois-je apprendre Hadoop avant Spark ? Non, Apache Spark est

    un projet indépendant de Hadoop. ...toutefois, comme il s’intègre avec Hadoop il est intéressant de connaître les bases de Hadoop.
  4. ~~~~~ ~~~~~ ~~~~~ ~~~ Ecrire un fichier 180 Mo DN1,

    DN2, DN3 done done done close Name node Client Data Node1 Data Node2 Data Node3 Replication pipeline Bloc de 64 Mo DN1, DN2, DN3 HDFS : récap’
  5. Hadoop : limitations • Mode Batch (adapté pour les traitement

    longs) • Ecriture des résultats intermédiaires en disque (forte latence à cause de la replication) • Lecture à partir du disque seulement (pénalise les algorithmes itéractifs)
  6. HDD: $1.24/GB RAM: $189/GB HDD: $0.05/GB RAM: $5.50/GB (34x less

    expensive 2005) (Apache Spark June 2013)
  7. Apache Spark • 2009 : sujet de recherche UC Berkeley

    AMPLab (open source 2010) • Juin 2013 : Top Apache Project (Apache Spark) • Extension du modèle MapReduce (plus performant, in-memory) • Framework généraliste (propose autres paradigmes de programmation) • API en Scala, Java, Python et R • Permet de faire des analyses interactives (Scala et Python) • Ecosystème riche (SparkSQL, Spark Streaming, MLlib, GraphX)
  8. Data Science et Big Data Les technologies doivent être un

    facilitateur, pas le but. La vraie valeur du Big Data vient de la rencontre de la donnée avec son contexte business, où l’analyse mène à des meilleures prises de décision — autrement, c’est juste de la data !
  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
  10. Map

  11. Map

  12. Reduce Action reduce(accumulator, e: accumulator + element) 0 acc 01

    1 2 3 3 6 4 10 15 5 elem 15 30 La fonction doit être commutative et associative !!!
  13. GroupByKey : limitations • Demande beaucoup de transfert des données

    entre les workers • Pour une grande collection, par exemple compter les mots dans toutes le pages Wikipedia, cela peut dépasser la mémoire disponible dans les workers
  14. map vs flatMap Transformation RDD (String) Hello Word A new

    line! Viva Las Vegas map(x: x.split(‘ ’)) RDD (List of String) Hello Word A new line! Viva Las Vegas
  15. map vs flatMap Transformation RDD (String) Hello Word A new

    line! Viva Las Vegas flatMap(x: x.split(‘ ’)) RDD (String) Hello Word A new line!
  16. 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,
  17. Pour aller plus loin • edX Introduction to Big Data

    with Apache Spark (https://goo.gl/ZHTIS7) • How-to: Translate from MapReduce to Apache Spark (http://goo.gl/oBZrb0)
  18. A venir • Partie II - CSV, Parquet, DataFrames, SparkSQL

    • Partie III - Usage avancé et NLP : Record Linkage