Entretien v2
Entretien v2
Entretien v2
Présentation 2
Dataiku 2
Question technique 3
Python 3
Qu’est ce que Python 3
Programmation orientée objet 3
Gestion de la mémoire 3
Liste/Set 3
E ets de bord 3
Compréhension de liste 3
Décorateur 3
Fonction lambda 4
Test Unitaire 4
Spark 5
Qu’est ce que Spark 5
Structure de données (RDD, Dataframe, Dataset) 5
Fonctionnement 5
Catalyst 5
Transformation/Action 5
Lazy 5
Format de stockage Avro/Orc/Parquet 5
Test technique 6
Problèmes 6
Analyse de requête 6
Python 6
Spark 6
SQL 6
1/6
ff
Présentation
Dataiku
• Boite française qui est passée au statut de Licorne quand Google est rentré dans son
capital
• Plate-forme orienter Data, qui regroupe un ensemble d’outils qui permet de développer un
projet de A à Z avec un IDE, la gestion des versions avec git…
• User friendly, 2 manières de développer, en code, ou en recipe graphique pour les gens qui
sont moins à l’aise en code
2/6
Question technique
Python
Qu’est ce que Python
• Langage de programmation multi-paradigme (POO, fonctionnelle…)
• Typage dynamique
• Langage interprété (exécution ligne à ligne) à l’inverse du langage compilé (compilation de
l’entièreté du code en langage machine)
• Langage facile et rapide à apprendre
• Open source et gratuit
• Compatible et fonctionne de la même manière avec toutes les plateformes (Windows, Linux,
Mac OS)
Gestion de la mémoire
• Pas de gestion particulière, gestion automatique
• Garbage collector qui s’occupe de la désallocation de la mémoire
Liste/Set
• Pas de doublon dans les sets par rapport au liste
• Pas de modi cation possible d’un élément précis dans un set, même si possibilité d’ajouter
et de supprimer des éléments
Effets de bord
• Modi cation d’une variable en dehors de son scope
Compréhension de liste
• Permet de travailler sur les listes ou un autre élément itérable de manière simpli er et plus
lisible
• Possibilité de ltrer ou traiter tous les éléments d’une liste en une seule ligne
Décorateur
• Fonction qui permet de modi er le comportement du fonction sans en changer le structure
(Ex: Chronométré une fonction)
3/6
ff
fi
fi
fi
fi
ff
ff
fi
• Syntaxe @fonction
• Possibilité d’utiliser plusieurs décorateurs sur une même fonction
Fonction lambda
• Petite fonction pouvant contenir qu’une seule ligne, et pouvant être anonyme (car pas de
nom)
• Syntaxe : lambda x : x + 1
Test Unitaire
• Test qui permet de tester une fonction précise
4/6
Spark
Qu’est ce que Spark
• Framework de calcul distribué qui permet de traiter de large volume de donner
• Fonctionne sur la RAM mais peut aussi fonctionner sur le disque dur si nécessaire
• Fonctionne avec plusieurs langage (Python, Java, Scala, R, SQL)
• Plusieurs types de structure disponibles (RDD, Dataframe, Dataset)
• Fonctionne avec un FileSystem comme Hadoop
Fonctionnement
• Test qui permet de tester une fonction précise
Catalyst
• Optimiseur du module Spark SQL qui permet d’optimiser les requêtes
Transformation/Action
• Transformation, fonction qui prend un dataframe/dataset/rdd en entrée et qui retourne la
même chose (Ex: Filtre, elles sont Lazy)
• Action, fonction qui retourne autre chose qu’un Dataframe/Dataset/RDD en sortie (Ex:
count, ne sont pas Lazy)
Lazy
• Une fonction Lazy n’est pas exécuter tant que sont résultats n’est pas utilisé par une action
5/6
ffi
fi
ffi
Test technique
Problèmes
Question : Si j’ai une liste 1 000 000 de mot provenant du dictionnaire de manière aléatoire,
qu’est ce que tu choisirais pour stocker ces données, une liste, un set ou un dictionnaire, sachant
qu’on veut la meilleure complexité possible.
Analyse de requête
Python
"Test technique”[:-3]
lst = [1, 2, 3, 4, 5, 6]
resultat = {k: k // 2 for k in lst}
a, b = 1,0
try:
print(a/b)
except ZeroDivisionError:
print("Can not divide by zero")
nally:
print("Executing nally block”)
Spark
SQL
6/6
fi
fi