SlideShare une entreprise Scribd logo
Paris Data Eng — Octobre 2019


Jonathan WINANDY
univalence.io
Jonathan Winandy
• Co-Organisateur du Paris Data Eng
• Fondateur d’univalence.io “Data made simple”

-> Cabinet d’expertise en Data Engineering
• Conférencier dans le domaine de la Méga Data :
• Construction de Datalakes (spark-adabra)
• Accélération des cycles de développement (fast-spark)
• Qualité des données (centrifuge)
• …
UNIVALENCE: Data Sidekicks
3
Univalence : les acolytes de la
Data depuis 2015 !
Univalence.IO
• On améliore les activités de d’ingénierie de la donnée :
• Conseil
• Audit
• Blog
• Formation (Scala débutant/avancé, Kafka et Spark)
• Outils => SparkTools
Data made simple
Scala et Spark
• Objet
• FP
• Fonction f de A => B
• Complète

∀a ∈ A, f(a) ∈ B
• Déterministe

∀a ∈ A, f(a) == f(a)
• Sans effets de bord
• JVM + très bonne interop
• Composition de programmes
complexes
• Calcul distribué en
mémoire (+ disque)
• Interop avec les sources
de données
• Intégration avec les
orchestrateurs
• Architecture plus flexible
• Plus facile pour développer
• R / Python / Java / Scala
• ‘opencore’
• Aujourd’hui le projet ‘ParkaViz’ est privé !
• Mono Repo, Mono Branche
• https: //github.com/univalence/spark-tools/tree/master
• Pour :
• Scala 2.11 et 2.12
• Spark 2.0 à 2.4
• Intégration continue avec Circle-CI
• https: //circleci.com/gh/univalence/workflows/spark-tools
• Livraison sur bintray
• https: //bintray.com/univalence/univalence-jvm
Mono Repo + Mono Branch + Release Early
Chaque commit entraîne une
livraison des projets 

(si les tests passent)
0.3+130-4432b345
version+distance-hash
resolvers += "spark-test" at "http: //dl.bintray.com/univalence/univalence-jvm"
libraryDependencies += "io.univalence" %% "spark-test" % "0.3+79-4936e981" % Test
=> François : "SBT, monorepo et livraison"
Les projets
•Centrifuge => Parka
•Spark-Test
•Spark-ZIO
•Fenek
•Plumbus
Plumbus
• Un projet pour les expérimentations,
en particulier pour le blog.
• Eg :
• Le cogroup pour les dataframes en
Spark
• https: //github.com/univalence/
spark-tools/blob/master/plumbus/
src/main/scala/io/univalence/
plumbus/cogroup.scala
Spark-Test (1/2)
• Les tests avec Spark n’est pas si facile !
• Spark-Test permet de :
• Fournir une SparkSession (configurable)
• Créer facilement des dataframes
• Comparer les dataframes
• Rapidement
• En expliquant clairement les différences
Spark-Test (2/2)
class MyTestClass extends FunSuiteLike with SparkTest {
test("create df with json string") {
// create df from json string
val df = dfFromJsonString("{a:1}", "{a:2}")
}
}
val dfUT = Seq(1, 2, 3).toDF("id")
val dfExpected = Seq(2, 1, 4).toDF("id")
dfUT.assertEquals(dfExpected)
in value at id, 2 was not equal to 1
dataframe({id: 1})
dataframe({id: 2})
in value at id, 1 was not equal to 2
dataframe({id: 2})
dataframe({id: 1})
in value at id, 4 was not equal to 3
dataframe({id: 3})
dataframe({id: 4})
=> Harrison : "Tests Spark simples et efficaces avec Spark-Test"
Fenek (~alpha)
• Permet de modéliser des pipelines colonnes
par colonnes.
• Test des colonnes séparément.
• Meilleur gestion des “UDF”s.
Spark-ZIO
• Parce que l’API de Spark n’est pas (assez) pure !
• API plus propre
• Meilleur code pour les pipelines Spark
• Gestion de la SparkSession, du Load, du Write, …
• Permet d’améliorer la performance des petits pipelines.
• Mais aussi du ‘retry’, ‘recover’, ‘scheduling’, …
• A venir, gestion des appels “REST” au milieu d’un job
spark.
=> Phil : "Apprivoiser Spark avec ZIO"
Centrifuge -> Parka
• Outils de gestion de la qualité des données :
• Ligne à ligne
• Globale (DeltaQA)
->
Parka / DeltaQA
• Calcul d'indicateurs pour les tests de non-régression.
• Peut-on comparer f’ (la nouvelle transformation) et f
pour s’assurer que f’ est meilleure ?
f f’
Update
À la main ?
1. On prend un échantillon S
2. On map avec f => R
3. On map avec f’ => R’
4. ???
5. Profit !
Avec Parka
Feuille de route
• Parka
• Meilleures analyses
• Données imbriquées
• …
• ParkaViz as a Service (gratuit ?)
• Intégration des projets encore dans les cartons
• Ex. SchemaUtils
• Avoir des contributeurs externes à Univalence
Une question ?


jonathan@univalence.io

Contenu connexe

PDF
Delta lake - des data lake fiables a grande échelle
PPTX
DataStax et Apache Cassandra pour la gestion des flux IoT
PDF
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
PPTX
DataStax Enterprise BBL
PDF
Rendez vos objets connectés intelligents avec la "Lambda architecture"
PDF
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
PPTX
Paper presentation of Performance Analysis of IoT-Based Sensor,Big Data Proce...
PPTX
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Delta lake - des data lake fiables a grande échelle
DataStax et Apache Cassandra pour la gestion des flux IoT
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
DataStax Enterprise BBL
Rendez vos objets connectés intelligents avec la "Lambda architecture"
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
Paper presentation of Performance Analysis of IoT-Based Sensor,Big Data Proce...
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)

Tendances (19)

PDF
Delta Lake, un vernis pour parquet
PDF
Architecture Big Data open source S.M.A.C.K
PDF
Datalake de l'idée à la plateforme
PDF
Azure Data Factory-Rebuild 2017
PDF
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
PPTX
Usi 2013 - NoSql les defis à relever
PDF
Apache Zeppelin @DevoxxFR 2016
PPTX
Hug janvier 2016 -EDF
PPTX
HUG France - 20160114 industrialisation_process_big_data CanalPlus
PPTX
GraphTour - Workday: Tracking activity with Neo4j (French version)
PPTX
DataStax Enterprise - La plateforme de base de données pour le Cloud
PDF
SQL Saturday Paris 2015 - Polybase
PPTX
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
PPTX
Quelles stratégies de Recherche avec Cassandra ?
PPTX
DataStax et Cassandra dans Azure au Microsoft Techdays
PDF
Cartographie du big data
PPTX
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
PDF
Oxalide MorningTech #1 - BigData
PDF
Ugif 09 2013 friug 201309 axional web studio
Delta Lake, un vernis pour parquet
Architecture Big Data open source S.M.A.C.K
Datalake de l'idée à la plateforme
Azure Data Factory-Rebuild 2017
Realtime Web avec Akka, Kafka, Spark et Mesos - Devoxx Paris 2014
Usi 2013 - NoSql les defis à relever
Apache Zeppelin @DevoxxFR 2016
Hug janvier 2016 -EDF
HUG France - 20160114 industrialisation_process_big_data CanalPlus
GraphTour - Workday: Tracking activity with Neo4j (French version)
DataStax Enterprise - La plateforme de base de données pour le Cloud
SQL Saturday Paris 2015 - Polybase
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Quelles stratégies de Recherche avec Cassandra ?
DataStax et Cassandra dans Azure au Microsoft Techdays
Cartographie du big data
[USI] Lambda-Architecture : comment réconcilier BigData et temps-réel
Oxalide MorningTech #1 - BigData
Ugif 09 2013 friug 201309 axional web studio
Publicité

Similaire à Spark tools by Jonathan Winandy (14)

PDF
Distributed computing with Spark 2.x
PDF
chap 2 - cours -99999897765579 Spark.pdf
PDF
Zenika matinale spark-zeppelin_ml
PDF
Scala pour le Data Eng
PDF
Scala pour le Data Engineering par Jonathan Winandy
PDF
Spark SQL principes et fonctions
PDF
Spark RDD : Transformations & Actions
PDF
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
PDF
PDF
Spark - au dela du dataframe avec Tungsten et Catalyst
PDF
BigData_TP3 : Spark
PDF
IODS : Retour d’expériences au sein du Center for Data Science
PDF
Cours Big Data Chap4 - Spark
PDF
Alphorm.com Formation Big Data avec Apache Spark: Initiation
Distributed computing with Spark 2.x
chap 2 - cours -99999897765579 Spark.pdf
Zenika matinale spark-zeppelin_ml
Scala pour le Data Eng
Scala pour le Data Engineering par Jonathan Winandy
Spark SQL principes et fonctions
Spark RDD : Transformations & Actions
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark - au dela du dataframe avec Tungsten et Catalyst
BigData_TP3 : Spark
IODS : Retour d’expériences au sein du Center for Data Science
Cours Big Data Chap4 - Spark
Alphorm.com Formation Big Data avec Apache Spark: Initiation
Publicité

Plus de Paris Data Engineers ! (10)

PDF
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
PDF
SCIO : Apache Beam API
PDF
Apache Beam de A à Z
PDF
REX : pourquoi et comment développer son propre scheduler
PDF
Deeplearning in production
PDF
Utilisation de MLflow pour le cycle de vie des projet Machine learning
PDF
Introduction à Apache Pulsar
PDF
10 things i wish i'd known before using spark in production
PDF
Change Data Capture with Data Collector @OVH
PDF
Building highly reliable data pipeline @datadog par Quentin François
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
SCIO : Apache Beam API
Apache Beam de A à Z
REX : pourquoi et comment développer son propre scheduler
Deeplearning in production
Utilisation de MLflow pour le cycle de vie des projet Machine learning
Introduction à Apache Pulsar
10 things i wish i'd known before using spark in production
Change Data Capture with Data Collector @OVH
Building highly reliable data pipeline @datadog par Quentin François

Dernier (7)

PDF
Modems expliqués- votre passerelle vers Internet.pdf
PDF
presentation_with_intro_compressee IEEE EPS France
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
FORMATION EN Programmation En Langage C.pdf
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
Modems expliqués- votre passerelle vers Internet.pdf
presentation_with_intro_compressee IEEE EPS France
Presentation_Securite_Reseaux_Bac+2.pptx
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
FORMATION EN Programmation En Langage C.pdf
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Tendances tech 2025 - SFEIR & WENVISION.pdf

Spark tools by Jonathan Winandy

  • 1. Paris Data Eng — Octobre 2019 
 Jonathan WINANDY univalence.io
  • 2. Jonathan Winandy • Co-Organisateur du Paris Data Eng • Fondateur d’univalence.io “Data made simple”
 -> Cabinet d’expertise en Data Engineering • Conférencier dans le domaine de la Méga Data : • Construction de Datalakes (spark-adabra) • Accélération des cycles de développement (fast-spark) • Qualité des données (centrifuge) • …
  • 3. UNIVALENCE: Data Sidekicks 3 Univalence : les acolytes de la Data depuis 2015 !
  • 4. Univalence.IO • On améliore les activités de d’ingénierie de la donnée : • Conseil • Audit • Blog • Formation (Scala débutant/avancé, Kafka et Spark) • Outils => SparkTools Data made simple
  • 5. Scala et Spark • Objet • FP • Fonction f de A => B • Complète
 ∀a ∈ A, f(a) ∈ B • Déterministe
 ∀a ∈ A, f(a) == f(a) • Sans effets de bord • JVM + très bonne interop • Composition de programmes complexes • Calcul distribué en mémoire (+ disque) • Interop avec les sources de données • Intégration avec les orchestrateurs • Architecture plus flexible • Plus facile pour développer • R / Python / Java / Scala
  • 6. • ‘opencore’ • Aujourd’hui le projet ‘ParkaViz’ est privé ! • Mono Repo, Mono Branche • https: //github.com/univalence/spark-tools/tree/master • Pour : • Scala 2.11 et 2.12 • Spark 2.0 à 2.4 • Intégration continue avec Circle-CI • https: //circleci.com/gh/univalence/workflows/spark-tools • Livraison sur bintray • https: //bintray.com/univalence/univalence-jvm
  • 7. Mono Repo + Mono Branch + Release Early Chaque commit entraîne une livraison des projets 
 (si les tests passent) 0.3+130-4432b345 version+distance-hash resolvers += "spark-test" at "http: //dl.bintray.com/univalence/univalence-jvm" libraryDependencies += "io.univalence" %% "spark-test" % "0.3+79-4936e981" % Test => François : "SBT, monorepo et livraison"
  • 8. Les projets •Centrifuge => Parka •Spark-Test •Spark-ZIO •Fenek •Plumbus
  • 9. Plumbus • Un projet pour les expérimentations, en particulier pour le blog. • Eg : • Le cogroup pour les dataframes en Spark • https: //github.com/univalence/ spark-tools/blob/master/plumbus/ src/main/scala/io/univalence/ plumbus/cogroup.scala
  • 10. Spark-Test (1/2) • Les tests avec Spark n’est pas si facile ! • Spark-Test permet de : • Fournir une SparkSession (configurable) • Créer facilement des dataframes • Comparer les dataframes • Rapidement • En expliquant clairement les différences
  • 11. Spark-Test (2/2) class MyTestClass extends FunSuiteLike with SparkTest { test("create df with json string") { // create df from json string val df = dfFromJsonString("{a:1}", "{a:2}") } } val dfUT = Seq(1, 2, 3).toDF("id") val dfExpected = Seq(2, 1, 4).toDF("id") dfUT.assertEquals(dfExpected) in value at id, 2 was not equal to 1 dataframe({id: 1}) dataframe({id: 2}) in value at id, 1 was not equal to 2 dataframe({id: 2}) dataframe({id: 1}) in value at id, 4 was not equal to 3 dataframe({id: 3}) dataframe({id: 4}) => Harrison : "Tests Spark simples et efficaces avec Spark-Test"
  • 12. Fenek (~alpha) • Permet de modéliser des pipelines colonnes par colonnes. • Test des colonnes séparément. • Meilleur gestion des “UDF”s.
  • 13. Spark-ZIO • Parce que l’API de Spark n’est pas (assez) pure ! • API plus propre • Meilleur code pour les pipelines Spark • Gestion de la SparkSession, du Load, du Write, … • Permet d’améliorer la performance des petits pipelines. • Mais aussi du ‘retry’, ‘recover’, ‘scheduling’, … • A venir, gestion des appels “REST” au milieu d’un job spark. => Phil : "Apprivoiser Spark avec ZIO"
  • 14. Centrifuge -> Parka • Outils de gestion de la qualité des données : • Ligne à ligne • Globale (DeltaQA) ->
  • 15. Parka / DeltaQA • Calcul d'indicateurs pour les tests de non-régression. • Peut-on comparer f’ (la nouvelle transformation) et f pour s’assurer que f’ est meilleure ? f f’ Update
  • 16. À la main ? 1. On prend un échantillon S 2. On map avec f => R 3. On map avec f’ => R’ 4. ??? 5. Profit !
  • 18. Feuille de route • Parka • Meilleures analyses • Données imbriquées • … • ParkaViz as a Service (gratuit ?) • Intégration des projets encore dans les cartons • Ex. SchemaUtils • Avoir des contributeurs externes à Univalence