Die Beispiele verwenden generierte Daten (Datalines) oder Datensätze aus der SASHELP-Bibliothek, um deren Autonomie zu gewährleisten.
1 Codeblock
DATA STEP / PROC CASUTIL Data
Erklärung : Dieses Beispiel veranschaulicht das einfachste Laden eines SAS-Datensatzes (hier 'sample_data', erstellt aus SASHELP.CLASS) nach CAS. Der Datensatz wird zuerst in der 'work'-Bibliothek von SAS erstellt. Anschließend wird PROC CASUTIL verwendet, um 'sample_data' unter dem Namen 'sample_data_cas' in die Standard-Caslib 'CASUSER' in CAS zu laden, wobei jede vorhandene Tabelle desselben Namens ersetzt wird. Ein Überprüfungsschritt über eine CAS-Aktion `table.tableinfo` ist enthalten.
Kopiert!
libname mycas cas;
/* Crée un jeu de données SAS dans la bibliothèque WORK */
data work.sample_data;
set sashelp.class;
keep name sex age;
run;
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
proc casutil;
load casdata="sample_data" casout="sample_data_cas" replace;
run;
/* Vérifie la table chargée dans CAS */
proc cas;
table.tableinfo result=info / name="sample_data_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Crée un jeu de données SAS dans la bibliothèque WORK */
4
DATA work.sample_data;
5
SET sashelp.class;
6
keep name sex age;
7
RUN;
8
9
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
Erklärung : Dieses Beispiel zeigt, wie gängige Optionen beim Laden verwendet werden. Ein Datensatz 'orders_local' wird mit Inline-Daten erstellt. Anschließend wird er in die Caslib 'CASUSER' geladen. Die Option `PROMOTE` wird verwendet, um die Tabelle 'orders_cas' in der CAS-Sitzung global zugänglich zu machen, was bedeutet, dass andere Benutzer oder Sitzungen darauf zugreifen können, wenn die Berechtigungen dies zulassen. `REPLACE` stellt sicher, dass, falls die Tabelle bereits existiert, sie überschrieben wird.
Kopiert!
libname mycas cas;
/* Création d'un jeu de données SAS local à charger */
data work.orders_local;
input OrderID Customer $ Amount;
datalines;
1001 Alice 250.00
1002 Bob 120.50
1003 Alice 300.00
1004 Charlie 80.25
;
run;
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
proc casutil;
load casdata="orders_local" casout="orders_cas" caslib="CASUSER" promote replace;
run;
/* Vérification de la table promue dans CAS */
proc cas;
table.tableinfo result=info / name="orders_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Création d'un jeu de données SAS local à charger */
4
DATA work.orders_local;
5
INPUT OrderID Customer $ Amount;
6
DATALINES;
7
1001 Alice 250.00
8
1002 Bob 120.50
9
1003 Alice 300.00
10
1004 Charlie 80.25
11
;
12
RUN;
13
14
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
Erklärung : Dieses fortgeschrittene Beispiel veranschaulicht ein Szenario, in dem Daten vor dem Laden in CAS vorbereitet und angereichert werden. Ein benutzerdefiniertes SAS-Format ('$statusfmt') wird definiert und auf die Variable 'Status' in einem neuen Datensatz 'employees_local' angewendet. Dieser formatierte Datensatz wird anschließend in CAS geladen. Beim Abrufen (fetch) der CAS-Tabelle bleibt das Format erhalten und wird angezeigt, was zeigt, dass der Ladevorgang die Attribute der SAS-Variablen, einschließlich der Formate, respektiert.
Kopiert!
libname mycas cas;
/* Définition d'un format personnalisé pour une variable */
proc format;
value $statusfmt 'A' = 'Actif'
'I' = 'Inactif'
other = 'Inconnu';
run;
/* Création d'un jeu de données SAS avec une variable à formater */
data work.employees_local;
input EmpID Name $ Status $;
format Status $statusfmt.; /* Applique le format */
datalines;
201 John A
202 Jane I
203 Mike A
204 Sara X
;
run;
/* Chargement du jeu de données formaté dans CAS */
proc casutil;
load casdata="employees_local" casout="employees_cas" caslib="CASUSER" replace;
run;
/* Vérification et affichage pour voir le format appliqué */
proc cas;
table.fetch result=r / table={name="employees_cas", caslib="CASUSER"};
print r.Fetch;
quit;
1
LIBNAME mycas cas;
2
3
/* Définition d'un format personnalisé pour une variable */
4
PROC FORMAT;
5
value $statusfmt 'A' = 'Actif'
6
'I' = 'Inactif'
7
other = 'Inconnu';
8
RUN;
9
10
/* Création d'un jeu de données SAS avec une variable à formater */
11
DATA work.employees_local;
12
INPUT EmpID Name $ STATUS $;
13
FORMATSTATUS $statusfmt.; /* Applique le format */
14
DATALINES;
15
201 John A
16
202 Jane I
17
203 Mike A
18
204 Sara X
19
;
20
RUN;
21
22
/* Chargement du jeu de données formaté dans CAS */
DATA STEP / PROC CASUTIL / PROC CAS (Actions CAS) Data
Erklärung : Dieses Beispiel hebt die Integration mit der CAS-Umgebung von Viya für die verteilte Verarbeitung hervor. Es beginnt mit der Erstellung eines gefilterten SAS-Datensatzes ('filtered_class_local'). Dieser Datensatz wird anschließend in CAS geladen. Der Schlüsselteil ist die Verwendung von `proc cas`, um eine 'CAS-Aktion' (`simple.summary`) direkt auszuführen. Diese Aktion wurde entwickelt, um die verteilte Architektur von CAS zu nutzen, um den Durchschnittsalter nach Geschlecht effizient zu berechnen, was das Leistungspotenzial der In-Memory-Analyse auf dem CAS-Server demonstriert. Ein abschließender Bereinigungsblock wird hinzugefügt, um die in CAS erstellten Tabellen zu löschen.
Kopiert!
libname mycas cas;
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
data work.filtered_class_local;
set sashelp.class (where=(age >= 12));
keep name sex age;
run;
/* Charge le sous-ensemble dans CAS */
proc casutil;
load casdata="filtered_class_local" casout="filtered_class_cas" caslib="CASUSER" replace;
run;
/* Utilise une action CAS (simple.summary) pour effectuer une agrégation distribuée */
proc cas;
simple.summary result=summary_res /
table={name="filtered_class_cas", caslib="CASUSER"},
groupby={"sex"},
inputs={"age"};
print summary_res;
quit;
/* Nettoyage : suppression des tables CAS créées (facultatif) */
proc casutil;
droptable casdata="sample_data_cas" caslib="CASUSER";
droptable casdata="orders_cas" caslib="CASUSER";
droptable casdata="employees_cas" caslib="CASUSER";
droptable casdata="filtered_class_cas" caslib="CASUSER";
run;
1
LIBNAME mycas cas;
2
3
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
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.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.