Die Aktion 'table.upload' ermöglicht das Laden lokaler oder entfernter Dateien in eine CAS In-Memory-Tabelle. Die Aktion 'table.save' persistiert eine In-Memory-Tabelle in eine persistente Datenquelle (z.B. eine SASHDAT-Datei), die mit einer Caslib verknüpft ist. Schließlich löscht 'table.dropTable' eine Tabelle aus dem CAS-Speicher. Das Skript verwendet auch 'proc http' zum Herunterladen einer CSV-Datei und 'pathname' zur Manipulation temporärer Dateipfade, um sicherzustellen, dass das Beispiel eigenständig ist.
Datenanalyse
Type : TELECHARGEMENT_EXTERNE_PUIS_CREATION_INTERNE
Die Beispiele laden eine CSV-Datei von einem SAS-Server herunter oder erstellen intern Daten (datalines) für Demonstrationen.
1 Codeblock
PROC CAS, DATA step Data
Erklärung : Dieses Beispiel erstellt eine einfache CSV-Datei mit einem DATA Step, lädt diese dann in eine CAS In-Memory-Tabelle namens 'MaTableSimple'. Anschließend speichert es diese Tabelle unter dem Namen 'MaTableSimpleSauvegardee' in der aktiven Caslib und löscht schließlich die ursprüngliche Tabelle 'MaTableSimple' aus dem CAS-Speicher. Die Aktion 'table.tableInfo' wird verwendet, um die Existenz der Tabellen zu überprüfen.
Kopiert!
data _null_; file _webout; put 'Nom,Age,Ville'; put 'Alice,30,Paris'; put 'Bob,24,Lyon'; put 'Charlie,35,Marseille'; run; %let data_csv_file = '/tmp/simple_data.csv'; filename _csv_ temp filevar=_webout; data _null_; file _csv_; input; put _infile_; run; proc cas; session casauto; table.upload / path=&data_csv_file. casOut={name='MaTableSimple', replace=TRUE}, importOptions={fileType='csv'}; print 'Table MaTableSimple chargée :'; table.tableInfo / name='MaTableSimple'; table.save / table='MaTableSimple', name='MaTableSimpleSauvegardee', replace=TRUE; print 'Table MaTableSimpleSauvegardee créée :'; table.tableInfo / name='MaTableSimpleSauvegardee'; table.dropTable / name='MaTableSimple'; print 'Table MaTableSimple supprimée de la mémoire :'; table.tableInfo / name='MaTableSimple'; quit;
PRINT'Table MaTableSimple supprimée de la mémoire :';
31
TABLE.tableInfo / name='MaTableSimple';
32
33
QUIT;
34
2 Codeblock
PROC CAS
Erklärung : Dieses Beispiel lädt eine CSV-Datei 'air.csv' herunter, lädt sie unter Verwendung von 'importOptions' zur besseren Erkennung von Variablentypen als 'AirData' in den CAS-Speicher. Es speichert diese In-Memory-Tabelle dann als SASHDAT-Datei mit dem Namen 'AirDataSauvegardee.sashdat' in der Caslib 'CASUSER' und 'promoted' sie, um sie für andere Sitzungen zugänglich zu machen. Schließlich wird die ursprüngliche Tabelle 'AirData' aus dem Speicher gelöscht.
Kopiert!
/* Définir l'URL du fichier CSV */
%let csv_url = 'http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/air.csv';
/* Créer un fichier temporaire pour le téléchargement */
filename _air_ temp;
/* Télécharger le fichier CSV */
proc http method='get' url=&csv_url. out=_air_;
run;
/* Obtenir le chemin du fichier temporaire */
%let temp_air_path = %sysfunc(pathname(_air_));
proc cas;
session casauto;
/* Charger le fichier CSV avec des options d'importation spécifiques */
table.upload /
path="&temp_air_path.",
casOut={name='AirData', replace=TRUE},
importOptions={fileType='csv', guessrows=1000, vartype='best'};
print 'Table AirData chargée :';
table.tableInfo / name='AirData';
/* Sauvegarder la table en mémoire vers un fichier SASHDAT spécifique dans la caslib active */
table.save /
table='AirData',
name='AirDataSauvegardee.sashdat',
caslib='CASUSER', /* Spécifier une caslib si nécessaire */
replace=TRUE;
print 'Table AirDataSauvegardee.sashdat créée dans CASUSER :';
table.tableInfo / name='AirDataSauvegardee.sashdat', caslib='CASUSER';
/* Promouvoir la table sauvegardée pour la rendre visible à d'autres sessions */
table.promote /
name='AirDataSauvegardee.sashdat',
caslib='CASUSER';
print 'Table AirDataSauvegardee.sashdat promue :';
table.tableInfo / name='AirDataSauvegardee.sashdat', caslib='CASUSER';
/* Supprimer la table originale en mémoire */
table.dropTable / name='AirData';
print 'Table AirData supprimée de la mémoire :';
table.tableInfo / name='AirData';
quit;
/* Libérer le fichier temporaire */
filename _air_ clear;
Erklärung : Dieses erweiterte Beispiel erstellt eine SAS In-Memory-Tabelle ('Produits') mit Formaten und Labels über einen DATA Step. Anschließend speichert es diese Tabelle im SASHDAT-Format mit 'saszpg'-Kompression in der Caslib 'CASUSER'. Die ursprüngliche Tabelle wird gelöscht, dann wird die gespeicherte Tabelle unter einem neuen Namen ('ProduitsRecharges') erneut in den Speicher geladen, um den vollständigen Zyklus zu demonstrieren. Die ersten Zeilen der neu geladenen Tabelle werden zur Überprüfung angezeigt.
Kopiert!
/* Création d'une table en mémoire via un DATA step */
data casuser.Produits;
length Categorie $10 Produit $20;
infile datalines dsd;
input Categorie $ Produit $ Prix Stock;
format Prix dollar8.2;
label Categorie='Catégorie de Produit' Produit='Nom du Produit' Prix='Prix Unitaire' Stock='Quantité en Stock';
datalines;
Aliments,Pommes,1.50,100
Aliments,Poires,2.00,75
Boissons,Jus d'orange,3.25,50
Boissons,Eau,1.00,200
Electronique,Souris,25.99,30
Electronique,Clavier,75.00,20
;
run;
proc cas;
session casauto;
print 'Table Produits créée en mémoire :';
table.tableInfo / name='Produits', caslib='CASUSER';
/* Sauvegarde de la table en mémoire avec compression et un chemin spécifique */
table.save /
table={name='Produits', caslib='CASUSER'},
name='ProduitsComp.sashdat',
caslib='CASUSER',
compression='saszpg', /* Compression pour économiser l'espace */
replace=TRUE;
print 'Table ProduitsComp.sashdat sauvegardée avec compression :';
table.tableInfo / name='ProduitsComp.sashdat', caslib='CASUSER';
/* Supprimer la table originale en mémoire */
table.dropTable / name='Produits', caslib='CASUSER';
print 'Table Produits supprimée de la mémoire :';
table.tableInfo / name='Produits', caslib='CASUSER';
/* Recharger la table sauvegardée dans une nouvelle table en mémoire */
table.loadTable /
caslib='CASUSER',
path='ProduitsComp.sashdat',
casOut={name='ProduitsRecharges', replace=TRUE};
print 'Table ProduitsRecharges rechargée en mémoire :';
table.tableInfo / name='ProduitsRecharges', caslib='CASUSER';
/* Afficher quelques lignes pour vérifier */
table.fetch /
table={name='ProduitsRecharges', caslib='CASUSER'},
to=5;
quit;
1
/* Création d'une table en mémoire via un DATA step */
2
DATA casuser.Produits;
3
LENGTH Categorie $10 Produit $20;
4
INFILEDATALINES dsd;
5
INPUT Categorie $ Produit $ Prix Stock;
6
FORMAT Prix dollar8.2;
7
label Categorie='Catégorie de Produit' Produit='Nom du Produit' Prix='Prix Unitaire' Stock='Quantité en Stock';
Erklärung : Dieses Beispiel demonstriert erweiterte CAS-Operationen. Nach dem Erstellen und Laden einer temporären Tabelle wird diese in der Caslib 'CASUSER' gespeichert. Anschließend werden die Aktion 'session.info' verwendet, um Details zur aktuellen CAS-Sitzung abzurufen, und 'builtins.listCaslibs', um alle verfügbaren Caslibs aufzulisten, was für die Ressourcenverwaltung und Fehlerbehebung nützlich ist. Schließlich werden die temporären Tabellen gelöscht.
Kopiert!
/* Créer une table temporaire pour la démonstration */
data _null_;
file _webout;
put 'ID,Valeur';
put '1,10';
put '2,20';
put '3,30';
run;
%let temp_data_file = %sysfunc(pathname(temp));
filename _tmp_data_ temp filevar=_webout;
data _null_;
file _tmp_data_;
input;
put _infile_;
run;
proc cas;
session casauto;
/* Charger la table */
table.upload /
path="&temp_data_file.",
casOut={name='TempTable', replace=TRUE},
importOptions={fileType='csv'};
print 'Table TempTable chargée :';
table.tableInfo / name='TempTable';
/* Sauvegarder la table dans une caslib spécifique (par exemple, un chemin de fichier) */
/* Assurez-vous que 'caslib_perso' est une caslib existante et accessible avec des droits d'écriture */
/* Par exemple, 'CASUSER' est souvent disponible */
table.save /
table='TempTable',
name='TempTable_Saved',
caslib='CASUSER',
replace=TRUE;
print 'Table TempTable_Saved sauvegardée dans CASUSER :';
table.tableInfo / name='TempTable_Saved', caslib='CASUSER';
/* Vérifier l'état de la session CAS */
session.info result=sinfo;
print 'Informations sur la session CAS:';
print sinfo;
/* Lister toutes les caslibs disponibles */
builtins.listCaslibs result=caslibs;
print 'Caslibs disponibles:';
print caslibs;
/* Supprimer les tables temporaires créées */
table.dropTable / name='TempTable';
table.dropTable / name='TempTable_Saved', caslib='CASUSER';
quit;
filename _tmp_data_ clear;
1
/* Créer une table temporaire pour la démonstration */
2
DATA _null_;
3
file _webout;
4
put 'ID,Valeur';
5
put '1,10';
6
put '2,20';
7
put '3,30';
8
RUN;
9
%let temp_data_file = %sysfunc(pathname(temp));
10
filename _tmp_data_ temp filevar=_webout;
11
DATA _null_;
12
file _tmp_data_;
13
INPUT;
14
put _infile_;
15
RUN;
16
17
PROC CAS;
18
SESSION casauto;
19
20
/* Charger la table */
21
TABLE.upload /
22
path="&temp_data_file.",
23
casOut={name='TempTable', replace=TRUE},
24
importOptions={fileType='csv'};
25
PRINT'Table TempTable chargée :';
26
TABLE.tableInfo / name='TempTable';
27
28
/* Sauvegarder la table dans une caslib spécifique (par exemple, un chemin de fichier) */
29
/* Assurez-vous que 'caslib_perso' est une caslib existante et accessible avec des droits d'écriture */
30
/* Par exemple, 'CASUSER' est souvent disponible */
31
TABLE.save /
32
TABLE='TempTable',
33
name='TempTable_Saved',
34
caslib='CASUSER',
35
replace=TRUE;
36
37
PRINT'Table TempTable_Saved sauvegardée dans CASUSER :';
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.