L'essentiel d'Apache Spark

Écrire une requête SQL

Testez gratuitement nos 1327 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Ici, vous utiliserez une syntaxe SQL SELECT traditionnelle, beaucoup plus facile à maîtriser, et vous l'exécuterez dans la méthode SQL.
04:18

Transcription

Maintenant, vous vous demandez si l'on peut faire du vrai SQL ? Bien sûr, on peut faire une requête SQL. Il suffit d'utiliser la méthode SQL pour envoyer un Select, comme ceci. On va donc définir notre requête SQL et puis, comme dans tout moteur SQL, envoyer la chaîne de la requête SQL au moteur. C'est ce qu'on fait avec Spark.sql On a deux questions : comment est-ce que j'accède à mon DataFrame ou à mon Dataset à l'intérieur de cette chaîne ? Est-ce que c'est reconnu ? Est-ce que je peux faire quelque chose comme ceci ? En mentionnant le nom de la variable ? Non, pas vraiment. Voyez avec tout mon stack, on me dit qu'il y a comme une erreur. On n'a pas trouvé la table ou la vue co. Que va-t-on faire ? On va se générer une vue. On va faire une vue temporaire, là, en l'occurrence, et on va utiliser la méthode sur l'objet qui s'appelle : create or replace temp view et puis, je vais envoyer à la méthode le nom de la vue que je veux créer à partir de ça. Comme on travaille sur cet objet, cela va créer une vue temporaire sur cet objet qu'on va appeler Commune et qu'on va pouvoir référencer, ici, dans la requête SQL. Le résultat, c'est un Dataset ou un DataFrame, je vais pouvoir faire un show en 10, ici je mets limit 10 pour vous montrer les possibilités du langage SQL. Il faut comprendre que le langage SQL de Spark se base sur le langage SQL de Hive et Hive implémente une grande quantité de la norme SQL. Vous pouvez donc faire pas mal de choses avec le langage SQL de Spark. Vous pouvez faire tous types de jointures comme des groupBy, etc... On a déjà fait une jointure avec la méthode join en ayant plusieurs Datasets, DataFrame à disposition. Vous pouvez faire des jointures avec un join, ici, en mentionnant des noms de tables ou de vues. Voilà qui est parfait. Comme je vous le dis, on peut faire des choses assez puissantes dans le SQL de Scala et je vais vous montrer un exemple. Je vais reprendre mon commune avec mon limit 10 d'ailleurs et puis je voudrais ajouter une fonction de partitionnement, une fonction de fenêtrage, ce qu'on appelle les windowing functions. C'est quelque chose qui est défini dans la norme SQL et qui va permettre de fenêtrer les résultats. Je ne vais pas entrer dans les détails, c'est plus un sujet SQL mais c'est juste pour vous montrer que ça fonctionne. Je vais ici afficher le code et, avant le code, je vais créer une nouvelle colonne à partir d'une fonction de fenêtrage qui s'appelle row_number et je vais créer un numéro de ligne. Une fonction de fenêtrage prend une clause over avec un partition by et/ou un order by cela dépend des types de fonction de fenêtrage. Je vais simplement faire un order by, ici ce n'est pas terrible et Spark va grogner mais je vais faire un order by code as Id par exemple. On va voir si ça marche. Voyez que l'Id a été générée, 1, 2, 3, 4, 5 parce que ce que j'ai dit c'est : crée-moi un numéro de ligne et tu le génères sur un order by code. Spark m'a dit : attention, tu n'as pas donné de partition pour windows operation, pour ta fonction de fenêtrage donc j'ai pris toutes les données et je les ai mises sur une seule partition. On a du récupérer les données sur tout le cluster et les travailler sur une seule partition pour faire la clause de fenêtrage, c'est assez logique parce que je veux vraiment faire un row_number sur l'intégralité de mon Dataset, mais ce n'est pas terrible du tout. En production, sur un vrai cluster, vous n'allez pas faire exactement cette commande mais c'est pour vous montrer que ça marche et que si vous avez l'habitude du langage SQL, vous avez à disposition pratiquement tout ce dont vous avez besoin pour faire vos analyses de données.

L'essentiel d'Apache Spark

Analysez des données volumineuses avec Apache Spark. Chargez vos données pour les analyser, profitez des opérations de transformation et des actions pour agréger vos données, etc.

3h11 (38 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :16 mars 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !