Entretien v2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

Sommaire

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)

Programmation orientée objet


• Paradigme de programmation avec des objets qui ont des attributs et des méthodes
propres à elles même et qui respecte 4 principes
• Encapsulation, chaque objet possède des méthodes qui permettent de les manipuler et qui
lui sont propres
• Abstraction, permet de cacher des attributs et méthodes aux autres objets, et de montrer
uniquement les éléments nécessaires
• Héritage, permet à un objet de s’attribuer les méthodes et attributs d’un autre objet
• Polymorphisme, permet d’utiliser les méthodes de plusieurs manières di érentes, sur
di érentes entités, avec un comportement di érent selon l’entité

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

Structure de données (RDD, Dataframe, Dataset)


• RDD, données non structurées (texte, média…), pas de schéma
• Dataframe, fonctionne sous forme de tableau, pas spécialement typé, présence d’un
schéma
• Dataset, fonctionne sous forme de tableau, fortement typé, présence d’un schéma

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

Format de stockage Avro/Orc/Parquet


• Avro, stockage en forme de ligne, Meilleur taux d’écriture, taux de compression normal,
bonne évolution du schéma car peut toujours lire les anciennes applications avec le
nouveau schéma
• Orc, stockage en colonne, meilleur taux de compression, e cace pour lire des sous
colonne
• Parquet, stockage en colonne, bon taux de compression, bon pour les nested le, e cace
pour lire les sous colonnes

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.

Réponse : Dictionnaire car possibilité de stocker le mot en clé et la fréquence en valeur, et


permet aussi d’avoir une complexité de O(1)

Analyse de requête
Python

"Test technique”[:-3]

lst = [1, 2, 3, 4, 5, 6]
resultat = {k: k // 2 for k in lst}

dico_1 = {"France": "Paris", "Espagne": "Madrid"}


dico_2 = {"France": "Bordeaux", "Italie": "Milan"}
resultat = {**dico_1, **dico_2}

lst = [“banane", “pomme”, “orange", “pastèque”, “melon”]


resultat = my_list[-1]

a, b = 1,0
try:
print(a/b)
except ZeroDivisionError:
print("Can not divide by zero")
nally:
print("Executing nally block”)

string = “Test technique"


resultat = string[::-1]

Spark

SQL

6/6
fi
fi

Vous aimerez peut-être aussi