Veröffentlicht am :
ETL CREATION_INTERNE

Detaillierte Analyse eines DATA Step Programms

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die funktionale Analyse dieses Dokuments beleuchtet die nahtlose Integration des traditionellen SAS© DATA Step mit der verteilten CAS-Verarbeitungs-Engine. Es erklärt, wie klassische SAS©-Anweisungen wie SET, KEEP und DROP in CAS funktionieren, und betont, dass der DATA Step dort ausgeführt wird, wo die Daten gespeichert sind. Das Dokument behandelt auch die standardmäßige Multithread-Verarbeitung von DATA Steps in CAS, die notwendigen Bedingungen für die Ausführung eines DATA Steps in CAS (Eingabe- und Ausgabetabellen müssen CAS-Tabellen sein oder eine CAS-Ausgabetabelle mit mindestens einer Variable), die Rolle von Caslibs als Container für Dateien und In-Memory-Tabellen und die empfohlene Verwendung von PROC CASUTIL zum Laden von SAS©-Datasets nach CAS. Schließlich wird die Systemoption DSACCEL= erwähnt, um den Ausführungsort des DATA Step zu steuern.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden generierte Daten (Datalines) oder die SASHELP-Bibliothek, was die Autonomie jedes Codeblocks gewährleistet.

1 Codeblock
PROC CASUTIL / PROC PRINT Data
Erklärung :
Dieses Beispiel initialisiert eine CAS-Sitzung und eine zugehörige Libname und lädt dann die ersten 10 Beobachtungen der Tabelle 'cars' aus der SASHELP-Bibliothek in eine CAS-Tabelle namens 'cars_basic'. Anschließend werden die ersten 10 Beobachtungen dieser CAS-Tabelle zur Überprüfung angezeigt.
Kopiert!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_basic' replace;
9RUN; QUIT;
10 
11PROC PRINT DATA=mycas.cars_basic(obs=10);
12title '10 premières observations de SASHELP.CARS dans CAS';
13RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Nachdem die Tabelle 'cars' in CAS geladen wurde, erstellt dieser Codeblock eine neue CAS-Tabelle, 'cars_transformed_mpg', indem eine neue Variable 'CombinedMPG' aus den Variablen MPG_Highway und MPG_City berechnet wird. Es wird eine einfache Gewichtung (40% Autobahn, 60% Stadt) verwendet und die neue Variable formatiert, dann werden die ersten 10 Zeilen angezeigt.
Kopiert!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_transformed' replace;
9RUN; QUIT;
10 
11DATA mycas.cars_transformed_mpg(promote=yes);
12 SET mycas.cars_transformed;
13 CombinedMPG = (MPG_Highway * 0.40) + (MPG_City * 0.60);
14 FORMAT CombinedMPG 5.1;
15RUN;
16 
17PROC PRINT DATA=mycas.cars_transformed_mpg(obs=10);
18 var Make Model CombinedMPG;
19 title 'MPG Combiné calculé (10 premières observations)';
20RUN;
3 Codeblock
DATA STEP / PROC PRINT Data
Erklärung :
Dieses Beispiel lädt zuerst die 'cars'-Daten in CAS. Anschließend wird ein komplexer DATA Step in CAS ausgeführt, der die Fahrzeuge filtert, um nur SUVs aus 'USA' oder Limousinen aus 'Asia' einzuschließen. Eine neue Variable 'AvgMPG' wird berechnet. Die Verarbeitung 'BY Origin Type' ermöglicht die Gruppierung der Ergebnisse, und eine Nachricht wird im Log bei jeder neuen Gruppe angezeigt, um die Gruppenverarbeitung zu veranschaulichen. Schließlich werden die gefilterten und verarbeiteten Ergebnisse angezeigt.
Kopiert!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_filtered' replace;
9RUN; QUIT;
10 
11DATA mycas.cars_filtered_grouped(promote=yes);
12 SET mycas.cars_filtered;
13 BY Origin Type;
14 where (Type = 'SUV' and Origin = 'USA') or (Type = 'Sedan' and Origin = 'Asia');
15 AvgMPG = mean(MPG_City, MPG_Highway);
16 IF first.Origin THEN put '---- Nouvelle Origine et Type ----';
17 put Origin= Type= AvgMPG= Make=;
18 keep Origin Type Make AvgMPG;
19RUN;
20 
21PROC PRINT DATA=mycas.cars_filtered_grouped;
22 title 'MPG Moyen des SUV Américains et Sedans Asiatiques';
23RUN;
4 Codeblock
PROC CASUTIL Data
Erklärung :
Dieses Beispiel hebt die Tabellenverwaltungsfunktionen von PROC CASUTIL hervor. Zuerst wird eine kleine temporäre CAS-Tabelle erstellt. Anschließend werden 'LIST TABLES' verwendet, um die verfügbaren Tabellen anzuzeigen, 'CONTENTS', um detaillierte Informationen über die temporäre Tabelle zu erhalten, und 'DROPTABLE', um sie aus dem CAS-Speicher zu löschen. Ein zweiter 'LIST TABLES'-Befehl bestätigt die Löschung. Dies demonstriert den grundlegenden Lebenszyklus einer CAS-In-Memory-Tabelle.
Kopiert!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5* Création d'une table CAS temporaire pour la démonstration;
6DATA mycas.temp_table(promote=yes);
7 x = 1;
8 y = 'Test';
9RUN;
10 
11PROC CASUTIL;
12 list tables caslib='casuserhdfs'; * Liste toutes les tables dans la caslib spécifiée;
13 contents casdata='temp_table'; * Affiche les détails de la table temp_table;
14 droptable casdata='temp_table'; * Supprime la table temp_table de la mémoire CAS;
15 list tables caslib='casuserhdfs'; * Vérifie que la table a été supprimée;
16RUN; QUIT;
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 © SAS Institute Inc. All Rights Reserved.