Pour des jointures simples, restez sur FEDSQL. Pour des traitements intégrés dans des modèles analytiques complexes ou nécessitant une logique métier avancée, passez par les actions CASL pour un contrôle total sur l'exécution
Les données source proviennent de la table standard 'sashelp.baseball'. Deux tables CAS intermédiaires, 'casuser.baseball_location' et 'casuser.baseball_stats', sont créées à partir de cette source pour faciliter les démonstrations de jointure. Aucune donnée externe n'est directement lue en dehors de 'sashelp'.
1 Bloc de code
CAS setup
Explication : Ce bloc initialise une session CAS et assigne toutes les caslibs disponibles, permettant l'accès et la manipulation des données en mémoire CAS. La ligne commentée `cas casauto terminate;` suggère une option pour terminer une session CAS existante.
Copié !
/* cas casauto terminate; */
cas;
caslib _all_ assign;
1
/* cas casauto terminate;
2
*/
3
cas;
4
caslib _all_ assign;
5
2 Bloc de code
DATA STEP Data
Explication : Création d'une nouvelle table CAS nommée 'baseball_location' dans la caslib 'casuser'. Cette table est dérivée de 'sashelp.baseball', en ne conservant que les colonnes relatives à l'identification du joueur et à sa position/équipe.
Copié !
data casuser.baseball_location;
set sashelp.baseball;
keep name team div division league position;
run;
1
DATA casuser.baseball_location;
2
SET sashelp.baseball;
3
keep name team div division league position;
4
RUN;
3 Bloc de code
DATA STEP Data
Explication : Création d'une seconde table CAS nommée 'baseball_stats' dans la caslib 'casuser'. Cette table est également dérivée de 'sashelp.baseball', mais toutes les colonnes de localisation et d'équipe sont supprimées pour isoler les statistiques des joueurs.
Copié !
data casuser.baseball_stats;
set sashelp.baseball;
drop team div division league position ;
run;
1
DATA casuser.baseball_stats;
2
SET sashelp.baseball;
3
drop team div division league position ;
4
RUN;
4 Bloc de code
OPTIONS Statement
Explication : Définit 'casuser' comme la caslib active par défaut pour les opérations CAS suivantes, simplifiant ainsi la syntaxe pour référencer les tables dans cette bibliothèque.
Copié !
/* set the active CASLIB */
options caslib=casuser;
1
/* set the active CASLIB */
2
options caslib=casuser;
3
5 Bloc de code
PROC FEDSQL Data
Explication : Exécute une requête FedSQL pour effectuer une jointure gauche (LEFT JOIN) entre les tables 'baseball_location' et 'baseball_stats' sur la colonne 'name'. Le résultat est stocké dans une nouvelle table CAS nommée 'fedsql'.
Copié !
/* FedSQL Left join example */
proc FEDSQL sessref=casauto;
create table fedsql as
select distinct a.div, a.division, a.league, a.position, a.team, b.*
from baseball_location as a left join
baseball_stats as b
on a.name=b.name;
quit;
Explication : Charge les ensembles d'actions CASL 'searchAnalytics' et 'deepLearn'. Ces ensembles d'actions contiennent des fonctionnalités avancées, y compris des actions de jointure spécifiques qui seront utilisées dans les blocs suivants.
Explication : Démontre l'utilisation de l'action 'dlJoin' de l'ensemble 'deepLearn' pour réaliser une jointure gauche. Elle joint 'baseball_location' avec 'baseball_stats' en utilisant la colonne 'name' comme identifiant, et crée une table 'dlJoin' en sortie.
Explication : Illustre l'action 'searchJoin' de l'ensemble 'searchAnalytics' pour une jointure gauche. Elle joint 'baseball_location' et 'baseball_stats' sur la colonne 'name', mais avec une spécification plus détaillée des colonnes, y compris un renommage pour distinguer les colonnes 'name' des tables gauche et droite. Le résultat est enregistré dans la table 'searchJoin'.
L'astuce technique déterminante pour choisir entre ces méthodes réside dans la gestion de la topologie des données : utilisez PROC FEDSQL pour sa flexibilité sur les jointures complexes impliquant plusieurs tables ou des types de données mixtes, mais privilégiez l'action searchJoin pour les volumes massifs car elle est spécifiquement optimisée pour les recherches indexées et permet de renommer les colonnes à la volée via le paramètre reName, évitant ainsi les collisions de noms sans nécessiter d'étape de renommage préalable. Notez que l'action dlJoin, bien qu'issue du jeu d'actions Deep Learning, est l'une des plus rapides pour les jointures binaires simples (1:1 ou N:1) car elle minimise les mouvements de données entre les noeuds workers en exploitant directement les identifiants de lignes.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.