Veröffentlicht am :
ETL SASHELP

GROUPBY Aggregationsbeispiel mit CASL und FedSQL

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert eine CAS-Umgebung, indem es eine Libname 'CASWORK' für die Caslib 'casuser' konfiguriert und Ein-Ebenen-Tabellen an diese Caslib umleitet. Anschließend lädt es den Datensatz 'sashelp.baseball' in eine CAS-Tabelle namens 'casuser.baseball'. Ein Bereinigungsschritt entfernt eine zuvor aggregierte Tabelle ('casuser.baseball_groupby'), falls diese existiert. Anschließend werden zwei Aggregationsmethoden veranschaulicht: Die erste verwendet 'PROC FEDSQL', um die Summe der Hits ('nhits') gruppiert nach Division ('div') und Team ('team') zu berechnen und speichert das Ergebnis in 'baseball_groupby'. Der zweite Ansatz verwendet die CAS-Aktion 'simple.groupBy' über 'PROC CAS', um eine ähnliche Aggregation auf der Tabelle 'baseball' durchzuführen, indem 'nhits' summiert und nach 'DIV' und 'TEAM' gruppiert wird, wobei das Ergebnis in 'casl_baseball_groupby' gespeichert wird.
Datenanalyse

Type : SASHELP


Der Quelldatensatz ist 'sashelp.baseball', eine in SAS integrierte Demotabelle. Diese Tabelle wird anschließend zur Ermöglichung von CAS-Operationen in die CAS-Engine unter 'casuser.baseball' kopiert.

1 Codeblock
CAS-Konfiguration
Erklärung :
Dieser Block konfiguriert den Zugriff auf die Cloud Analytic Services (CAS)-Engine. Er definiert eine Libname 'CASWORK', die auf die Caslib 'casuser' zeigt, wodurch CAS-Tabellen als SAS-Tabellen referenziert werden können. Die Option 'options USER = CASWORK;' leitet die Erstellung von Ein-Ebenen-SAS-Tabellen in diese CAS-Caslib um und stellt sicher, dass sie in CAS erstellt werden. Schließlich stellt 'caslib _all_ assign;' sicher, dass alle Caslibs aktiviert und einsatzbereit sind.
Kopiert!
1/* CAS Enabled */
2/* CASL GROUPBY Action Example */
3 
4/* LIBNAME using the CAS engine */
5LIBNAME CASWORK cas caslib=casuser;
6 
7/* Changing the default location of all one level named tables */
8/* from SASWORK to CASWORK */
9options USER = CASWORK;
10 
11%put &_sessref_;
12 
13caslib _all_ assign;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP erstellt eine neue CAS-Tabelle namens 'casuser.baseball', indem er den Inhalt des integrierten SAS-Datensatzes 'sashelp.baseball' kopiert. Dadurch werden die Daten für weitere Verarbeitungen in der CAS-Umgebung verfügbar.
Kopiert!
1 
2DATA casuser.baseball;
3SET sashelp.baseball;
4RUN;
5 
3 Codeblock
PROC DELETE
Erklärung :
Dieser Block verwendet 'PROC DELETE', um die Tabelle 'casuser.baseball_groupby' zu löschen, falls sie existiert. Dies ist eine gute Bereinigungspraxis, bevor eine Tabelle mit demselben Namen neu erstellt wird, um Fehler oder veraltete Daten zu vermeiden.
Kopiert!
1PROC DELETE DATA=casuser.baseball_groupby;
2RUN;
4 Codeblock
PROC FEDSQL Data
Erklärung :
Dieser Block verwendet 'PROC FEDSQL', um eine Datenaggregation direkt in CAS durchzuführen. Die Option 'options caslib="casuser"' definiert die Standard-Caslib für FEDSQL-Operationen. Die SQL-Abfrage berechnet die Summe der Hits ('nhits') und gruppiert die Ergebnisse nach 'div' (Division) und 'team' (Team), wodurch eine neue CAS-Tabelle namens 'baseball_groupby' erstellt wird.
Kopiert!
1options caslib="casuser";
2PROC FEDSQL sessref=casauto;
3 create TABLE baseball_groupby
4 as
5 (select sum(nhits) as nhits_sum
6 from baseball
7 group BY div, team) ;
8QUIT;
5 Codeblock
PROC CAS (simple.groupBy Aktion) Data
Erklärung :
Dieser Block verwendet 'PROC CAS', um mit der CAS-Engine zu interagieren und eine spezifische CAS-Aktion auszuführen: 'simple.groupBy'. Diese Aktion führt eine Aggregation durch. Sie nimmt die Variablen 'DIV' und 'TEAM' als Eingabe für die Gruppierung ('inputs'), 'nhits' als Gewichts-/Summationsvariable ('weight') und 'SUM' als Aggregationsfunktion ('aggregator'). Die Quelltabelle ist 'baseball' und das Ergebnis wird in einer neuen CAS-Tabelle namens 'casl_baseball_groupby' gespeichert, wobei jede vorhandene Tabelle mit demselben Namen ersetzt wird.
Kopiert!
1PROC CAS;
2 SESSION casauto;
3 SIMPLE.groupBy RESULT=r STATUS=s /
4 inputs={"DIV" "TEAM"},
5 weight="nhits",
6 aggregator="SUM",
7 TABLE={name="baseball"},
8 casout={name="casl_baseball_groupby",
9 replace=true};
10RUN;
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