Veröffentlicht am :
ETL SASHELP

Beispiele für Joins in CASL und FedSQL

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die Funktionsanalyse dieses SAS©-Skripts gliedert sich in mehrere Hauptschritte. Zunächst konfiguriert es eine CAS-Sitzung und weist alle verfügbaren 'Caslibs' zu. Anschließend werden zwei CAS-Tabellen (baseball_location und baseball_stats) in der Bibliothek 'casuser' aus der Tabelle sashelp.baseball vorbereitet, wobei die Standortinformationen von den Statistiken getrennt werden. Nachdem 'casuser' als aktive 'Caslib' festgelegt wurde, veranschaulicht das Skript drei Arten von Joins. Der erste verwendet PROC FEDSQL für einen Standard-'LEFT JOIN'. Die beiden folgenden sind Beispiele für fortgeschrittenere CASL-Joins, die die Aktionen 'dlJoin' aus dem 'deepLearn'-Aktionsset und 'searchJoin' aus dem 'searchAnalytics'-Aktionsset nutzen. Jede Methode erstellt eine neue CAS-Tabelle als Ergebnis des Joins.
Datenanalyse

Type : SASHELP


Die Quelldaten stammen aus der Standardtabelle 'sashelp.baseball'. Zwei temporäre CAS-Tabellen, 'casuser.baseball_location' und 'casuser.baseball_stats', werden aus dieser Quelle erstellt, um die Join-Demonstrationen zu erleichtern. Außerhalb von 'sashelp' werden keine externen Daten direkt gelesen.

1 Codeblock
CAS setup
Erklärung :
Dieser Block initialisiert eine CAS-Sitzung und weist alle verfügbaren Caslibs zu, um den Zugriff und die Manipulation von Daten im CAS-Speicher zu ermöglichen. Die auskommentierte Zeile `cas casauto terminate;` schlägt eine Option vor, eine bestehende CAS-Sitzung zu beenden.
Kopiert!
1/* cas casauto terminate;
2*/
3cas;
4caslib _all_ assign;
5 
2 Codeblock
DATA STEP Data
Erklärung :
Erstellung einer neuen CAS-Tabelle namens 'baseball_location' in der Caslib 'casuser'. Diese Tabelle wird von 'sashelp.baseball' abgeleitet, wobei nur die Spalten beibehalten werden, die sich auf die Spieleridentifikation und deren Position/Team beziehen.
Kopiert!
1DATA casuser.baseball_location;
2 SET sashelp.baseball;
3 keep name team div division league position;
4RUN;
3 Codeblock
DATA STEP Data
Erklärung :
Erstellung einer zweiten CAS-Tabelle namens 'baseball_stats' in der Caslib 'casuser'. Diese Tabelle wird ebenfalls von 'sashelp.baseball' abgeleitet, jedoch werden alle Standort- und Teamspalten entfernt, um die Spielerstatistiken zu isolieren.
Kopiert!
1DATA casuser.baseball_stats;
2 SET sashelp.baseball;
3 drop team div division league position ;
4RUN;
4 Codeblock
OPTIONS Statement
Erklärung :
Legt 'casuser' als Standard-Caslib für nachfolgende CAS-Operationen fest, wodurch die Syntax zum Referenzieren von Tabellen in dieser Bibliothek vereinfacht wird.
Kopiert!
1/* set the active CASLIB */
2options caslib=casuser;
3 
5 Codeblock
PROC FEDSQL Data
Erklärung :
Führt eine FedSQL-Abfrage aus, um einen LEFT JOIN zwischen den Tabellen 'baseball_location' und 'baseball_stats' über die Spalte 'name' durchzuführen. Das Ergebnis wird in einer neuen CAS-Tabelle namens 'fedsql' gespeichert.
Kopiert!
1/* FedSQL Left join example */
2PROC FEDSQL sessref=casauto;
3 create TABLE fedsql as
4 select distinct a.div, a.division, a.league, a.position, a.team, b.*
5 from baseball_location as a left join
6 baseball_stats as b
7 on a.name=b.name;
8QUIT;
6 Codeblock
PROC CAS
Erklärung :
Lädt die CASL-Aktionsgruppen 'searchAnalytics' und 'deepLearn'. Diese Aktionsgruppen enthalten erweiterte Funktionen, einschließlich spezifischer Join-Aktionen, die in den folgenden Blöcken verwendet werden.
Kopiert!
1/* CASL Join Examples */
2PROC CAS;
3LOADACTIONSET 'searchAnalytics';
4LOADACTIONSET 'deepLearn';
5QUIT;
7 Codeblock
PROC CAS (deepLearn.dlJoin) Data
Erklärung :
Demonstriert die Verwendung der Aktion 'dlJoin' aus dem 'deepLearn'-Aktionsset, um einen Left Join durchzuführen. Es verknüpft 'baseball_location' mit 'baseball_stats' unter Verwendung der Spalte 'name' als Bezeichner und erstellt eine Tabelle 'dlJoin' als Ausgabe.
Kopiert!
1/* Deep Learning Action Set dljon action: Examples */
2/* joinType="APPEND" | "FULL" | "INNER" | "LEFT" | "RIGHT" */
3PROC CAS;
4 DEEPLEARN.dlJoin /
5 joinType="LEFT"
6 annotatedTable={name="baseball_location"}
7 casOut={name="dlJoin", replace=TRUE}
8 id="name"
9 TABLE={name="baseball_stats"};
10 RUN;
11QUIT;
8 Codeblock
PROC CAS (searchAnalytics.searchJoin) Data
Erklärung :
Veranschaulicht die Aktion 'searchJoin' aus dem 'searchAnalytics'-Aktionsset für einen Left Join. Es verknüpft 'baseball_location' und 'baseball_stats' über die Spalte 'name', jedoch mit einer detaillierteren Spezifikation der Spalten, einschließlich einer Umbenennung, um die Spalten 'name' der linken und rechten Tabelle zu unterscheiden. Das Ergebnis wird in der Tabelle 'searchJoin' gespeichert.
Kopiert!
1/* searchAnalytics Action Set searchJoin action: Examples */
2/* joinType="APPEND" | "FULL" | "INNER" | "LEFT" | "RIGHT" */
3PROC CAS;
4 searchAnalytics.searchJoin /
5 joinType="LEFT"
6 casOut={name="searchJoin", replace=TRUE}
7 leftTable={columns={{isKey=TRUE, name="name"},
8 {name="name",
9 reName="name_left"
10 }
11 }
12 TABLE={name="baseball_location"}
13 }
14 rightTable={columns={{isKey=TRUE, name="name"},
15 {name="name",
16 reName="name_right"
17 }
18 }
19 TABLE={name="baseball_stats"}
20 };
21RUN;
22QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0