[Remote] #43 Koalas - Unifions les Data Scientists et les Data Engineers

[Remote] #43 Koalas - Unifions les Data Scientists et les Data Engineers

Le projet Koalas est un moyen d'unifier les Data Scientists et les Data Engineers en implémentant les API Pandas sur Apache Spark.
Lors de ce meetup, Rémi nous présentera Koalas, après quelques rappels introductifs sur Spark et Pandas.
Bonne ou mauvaise idée ? Où en est le projet et quel avenir a-t-il ? Rémy nous donnera son avis.

6aa4f3c589d3108830b371d0310bc4da?s=128

Toulouse Data Science

June 22, 2020
Tweet

Transcript

  1. @tlse_dasci

  2. @tlse_dasci Qui sommes nous ?

  3. @tlse_dasci Nos événements (Remote) Data Talk Data No Blabla Data

    Mojito Data Journal Club
  4. @tlse_dasci La core team TDS Alexia Aurélie Victor N’hésitez pas

    à venir échanger avec nous :-) Magaly Florient Samia Thibault
  5. @tlse_dasci Notre site web http://www.tlse-data-science.fr/

  6. @tlse_dasci Notre site web http://www.tlse-data-science.fr/

  7. @tlse_dasci Call For Paper http://www.tlse-data-science.fr/

  8. @tlse_dasci Contact http://www.tlse-data-science.fr/

  9. @tlse_dasci Sujet : Evaluation of Conversational Agents for Aerospace Domain

    Septembre 2020 chez Harry Cow What’s Next ? Visuel non contractuel
  10. @tlse_dasci Aujourd’hui, c’est #Remote #WFH

  11. @tlse_dasci (Les voisins ont hâte de vous retrouver !) Notre

    hôte habituel
  12. @tlse_dasci Merci à nos sponsors

  13. @tlse_dasci Merci à nos sponsors

  14. @tlse_dasci Merci à nos sponsors

  15. @tlse_dasci Merci à nos partenaires

  16. @tlse_dasci Les news

  17. @tlse_dasci Made with ML https://madewithml.com/

  18. @tlse_dasci CVPR 2020 CPVR Best papers http://cvpr2020.thecvf.com/node/817

  19. @tlse_dasci Monthly reminder to be aware of bias in ML

    You can / should you ? PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models https://arxiv.org/abs/2003.03808 https://github.com/adamian98/pulse https://twitter.com/tg_bomze/status/1274098682284163072?s=20 Le papier L’exemple qui fait le tour du monde
  20. @tlse_dasci Rémy Olivet Data Architect chez Ippon Technologies Notre speaker

    de ce soir
  21. IPPON 2019 Koalas - Unifions les Data Scientists et les

    Data Engineers Data Scientists Data Engineers IPPON 2020
  22. IPPON 2019 IPPON 2018 IPPON 2020 ★ Qui a déjà

    utilisé Spark ? ★ Qui a déjà joué avec Pandas ? ★ Qui a déjà entendu parler de Koalas ?
  23. IPPON 2019 IPPON 2018 IPPON 2020 ★ Qui a déjà

    utilisé Spark ? ★ Qui a déjà joué avec Pandas ? ★ Qui a déjà entendu parler de Koalas ? Version longue Originale sans sous-titres
  24. IPPON 2019 Voyage dans la Data science ★ Apprentissage (MOOC,

    Etudes, …) → Pandas ★ Analyse de petite donnée → Pandas ★ Analyse de gros lots de données → Dataframe dans Spark IPPON 2020
  25. IPPON 2019 IPPON 2018 IPPON 2019 Pandas

  26. IPPON 2019 Pandas ★ Librairie python de manipulation, analyse et

    visualisation de la donnée créé par Wes McKinney en 2008 ★ Basé sur NumPy, SciPy et matplotlib ★ Permet de manipuler des ◦ DataFrame : structure de donnée spreadsheet-like contenant une liste ordonnée de colonnes ; ◦ Series : array-like objet à une dimension contenant des données et des index. ★ Généralement plus performant que d’autres outils de manipulation (e.g. R) ★ Calcul en mémoire et stockage de tous les états intermédiaires ★ Agrégation de la donnée, gestion des timeseries, … ★ v1.0.5 Juin 2020 IPPON 2020
  27. IPPON 2019 Pandas pour les Data Scientists ML library ★

    Totalement intégré à l'écosystème des librairies Python de Data Science IPPON 2020
  28. IPPON 2019 IPPON 2018 IPPON 2019 Spark

  29. IPPON 2019 Hadoop MapReduce IPPON 2020

  30. IPPON 2018 IPPON 2019 2009 2013 Juin 2013 Mai 2014

    Juillet 2016 Aujourd’hui Historique
  31. IPPON 2019 Spark - Processing IPPON 2020

  32. IPPON 2019 IPPON 2019 Spark - API RDD (2011) ★

    Collection d’objets JVM ★ API bas niveau ★ Base du calcul distribué pour Spark (map, filter, …) ★ Immutable DataFrame (2013) ★ Collection d’objet ROW ★ Plan logique et optimisation via Catalyst ★ Projet Tungsten pour l’optimisation CPU/RAM Dataset (2015) ★ Fortement typé ★ Plus lent que les DataFrame ★ Erreur de typage levée directement à la compilation IPPON 2020
  33. IPPON 2019 Spark modules Modules Spark IPPON 2020

  34. IPPON 2019 Spark - Avantages ★ Scale ★ Calcul en

    mémoire (Comparatif vs Hadoop MR: 30x plus rapide pour un tri de 100TB de donnée) ★ “Lazy” evaluation ★ Mature (v3.0) ★ Scala & Programmation fonctionnelle ★ Communauté ★ Documentation IPPON 2020
  35. IPPON 2019 Spark - Exemple de code val spark =

    SparkSession.builder().appName("meetupKoalas").master("local[*]") .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") .getOrCreate() val path = “meetups.parquet” val schema = new StructType().add("meetup", StringType).add("nb_of_people", StringType) val df = spark.read.schema(schema).parquet(path) df = df.na.drop("any", Seq("meetup", "nb_of_people")) df = df .where($"meetup" isNotNull) .where($"nb_of_people" =!= 0) .groupBy($"meetup") .agg(sum($"nb_of_people") as "total_by_meetup") .where($"total_by_meetup" > 100) .sort($"meetup" desc) df.show() IPPON 2020
  36. IPPON 2019 IPPON 2018 IPPON 2019 Spark, moi et les

    Data Scientists
  37. IPPON 2019 toPandas() ★ toPandas() M E M OOM IPPON

    2020
  38. IPPON 2019 take() ★ take(1000) IPPON 2020

  39. IPPON 2019 DSL import pandas as pd df = pd.read_csv(“my_file.csv”)

    df.columns = [‘x’, ‘y’, ’z’] df.x2 = df.x*df.x df.x2.value_counts() val spark = org.apache.spark.sql.SparkSession.builder .master("local") .appName("Spark CSV Reader") .getOrCreate; df = spark.read.option(“inferSchema”, “true”).option(“comment”, True).csv(“my_file.csv”) df = df.toDF(‘x’, ‘y’, ‘z’) df = df.withColumn(‘x2’, df.x*df.x) df = df.groupBy(df[‘x2’]).count().orderBy(‘count’, ascending=False) IPPON 2020
  40. IPPON 2019 IPPON 2018 IPPON 2019 Koalas

  41. IPPON 2019 Koalas ★ Librairie python open source créée par

    Databricks (v1.0.0 !) https://github.com/databricks/koalas/tree/v1.0.0/databricks/koalas ★ Implémente les API Pandas sur Apache Spark (PySpark) ★ Pandas first ★ Maintien la compatibilité Spark et Pandas (DataFrame, from_spark, from_pandas) IPPON 2020
  42. IPPON 2019 Suit-up ! Koalas, the distributed Pandas https://community.cloud.databricks.com/?o=7318061195460066#notebook/2491661392744885/command/2491661392744886 IPPON

    2020
  43. IPPON 2019 Koalas - Avantages ★ Performance: Profite de la

    puissance et des optimisations de Spark IPPON 2020
  44. IPPON 2019 Koalas - Avantages ★ Performance: Profite de la

    puissance et des optimisations de Spark ★ Transition facile entre le monde de la data et du “big data” ★ Pas de nécessité d’apprendre un nouveau DSL (Spark) import pandas as pd import databricks.koalas as pd IPPON 2020
  45. IPPON 2019 Koalas - Avantages ★ Performance: Profite de la

    puissance et des optimisations de Spark ★ Transition facile entre le monde de la data et du “big data” ★ Pas de nécessité d’apprendre un nouveau DSL ★ Communauté ◦ API Dataframe/Series ◦ API DataframeGroupBy/SeriesGroupBy ◦ API Index/MultiIndex ◦ les fonctions spécifiques ▪ to_datetime ▪ get_dummies ▪ … ◦ Fonctions relatives au plot
  46. IPPON 2019 Koalas - Limitations ★ Support des librairies Python

    de plotting et machine learning ◦ toPandas() IPPON 2020
  47. IPPON 2019 Koalas - Limitations ★ Support des librairies Python

    de plotting et machine learning ★ Ordre IPPON 2020 px.line_3d(pdf, x=’day’, y=’hour’, z=’count’) px.line_3d(kdf.sort_values([‘day’, ‘hour’]).toPandas(), x=’day’, y=’hour’, z=’count’)
  48. IPPON 2019 Koalas - Limitations ★ Support des librairies Python

    de plotting et machine learning ★ Ordre ★ Expertise sur le calcul distribué • Partitions • Data Shuffle • Data Skew • UDF • Orchestration • JVM ... IPPON 2020
  49. IPPON 2019 Koalas - Benchmark ★ Performance Koalas vs Spark

    vs Pandas https://databricks.com/blog/2019/08/22/guest-blog-how-virgin-hyperloop-one-reduced-processing-time-from-hours-to-minutes-with-koalas.html IPPON 2020
  50. IPPON 2019 IPPON 2018 IPPON 2019 Merci pour eux !

    Des questions ?