Veröffentlicht am :
CAS TELECHARGEMENT_EXTERNE_PUIS_CREATION_INTERNE

Verwaltung von In-Memory-Tabellen (Hinzufügen, Speichern, Löschen)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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!
1 
2DATA _null_;
3file _webout;
4put 'Nom,Age,Ville';
5put 'Alice,30,Paris';
6put 'Bob,24,Lyon';
7put 'Charlie,35,Marseille';
8 
9RUN;
10%let data_csv_file = '/tmp/simple_data.csv';
11filename _csv_ temp filevar=_webout;
12 
13DATA _null_;
14file _csv_;
15INPUT;
16put _infile_;
17 
18RUN;
19 
20PROC CAS;
21 
22SESSION casauto;
23TABLE.upload / path=&data_csv_file. casOut={name='MaTableSimple', replace=TRUE}, importOptions={fileType='csv'};
24PRINT 'Table MaTableSimple chargée :';
25TABLE.tableInfo / name='MaTableSimple';
26TABLE.save / TABLE='MaTableSimple', name='MaTableSimpleSauvegardee', replace=TRUE;
27PRINT 'Table MaTableSimpleSauvegardee créée :';
28TABLE.tableInfo / name='MaTableSimpleSauvegardee';
29TABLE.dropTable / name='MaTableSimple';
30PRINT 'Table MaTableSimple supprimée de la mémoire :';
31TABLE.tableInfo / name='MaTableSimple';
32 
33QUIT;
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!
1/* Définir l'URL du fichier CSV */
2%let csv_url = 'http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/air.csv';
3 
4/* Créer un fichier temporaire pour le téléchargement */
5filename _air_ temp;
6 
7/* Télécharger le fichier CSV */
8PROC HTTP method='get' url=&csv_url. out=_air_;
9RUN;
10 
11/* Obtenir le chemin du fichier temporaire */
12%let temp_air_path = %sysfunc(pathname(_air_));
13 
14PROC CAS;
15 SESSION casauto;
16 
17 /* Charger le fichier CSV avec des options d'importation spécifiques */
18 TABLE.upload /
19 path="&temp_air_path.",
20 casOut={name='AirData', replace=TRUE},
21 importOptions={fileType='csv', guessrows=1000, vartype='best'};
22 
23 PRINT 'Table AirData chargée :';
24 TABLE.tableInfo / name='AirData';
25 
26 /* Sauvegarder la table en mémoire vers un fichier SASHDAT spécifique dans la caslib active */
27 TABLE.save /
28 TABLE='AirData',
29 name='AirDataSauvegardee.sashdat',
30 caslib='CASUSER', /* Spécifier une caslib si nécessaire */
31 replace=TRUE;
32 
33 PRINT 'Table AirDataSauvegardee.sashdat créée dans CASUSER :';
34 TABLE.tableInfo / name='AirDataSauvegardee.sashdat', caslib='CASUSER';
35 
36 /* Promouvoir la table sauvegardée pour la rendre visible à d'autres sessions */
37 TABLE.promote /
38 name='AirDataSauvegardee.sashdat',
39 caslib='CASUSER';
40 
41 PRINT 'Table AirDataSauvegardee.sashdat promue :';
42 TABLE.tableInfo / name='AirDataSauvegardee.sashdat', caslib='CASUSER';
43 
44 /* Supprimer la table originale en mémoire */
45 TABLE.dropTable / name='AirData';
46 PRINT 'Table AirData supprimée de la mémoire :';
47 TABLE.tableInfo / name='AirData';
48QUIT;
49 
50/* Libérer le fichier temporaire */
51filename _air_ clear;
3 Codeblock
DATA STEP, PROC CAS Data
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!
1/* Création d'une table en mémoire via un DATA step */
2DATA casuser.Produits;
3 LENGTH Categorie $10 Produit $20;
4 INFILE DATALINES 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';
8 DATALINES;
9Aliments,Pommes,1.50,100
10Aliments,Poires,2.00,75
11Boissons,Jus d'orange,3.25,50
12Boissons,Eau,1.00,200
13Electronique,Souris,25.99,30
14Electronique,Clavier,75.00,20
15;
16run;
17 
18proc cas;
19 session casauto;
20 
21 print 'TABLE Produits créée en mémoire :';
22 table.tableInfo / name='Produits', caslib='CASUSER';
23 
24 /* Sauvegarde de la table en mémoire avec compression et un chemin spécifique */
25 table.save /
26 table={name='Produits', caslib='CASUSER'},
27 name='ProduitsComp.sashdat',
28 caslib='CASUSER',
29 compression='saszpg', /* Compression pour économiser l'espace */
30 replace=TRUE;
31 
32 PRINT 'Table ProduitsComp.sashdat sauvegardée avec compression :';
33 TABLE.tableInfo / name='ProduitsComp.sashdat', caslib='CASUSER';
34 
35 /* Supprimer la table originale en mémoire */
36 TABLE.dropTable / name='Produits', caslib='CASUSER';
37 
38 PRINT 'Table Produits supprimée de la mémoire :';
39 TABLE.tableInfo / name='Produits', caslib='CASUSER';
40 
41 /* Recharger la table sauvegardée dans une nouvelle table en mémoire */
42 TABLE.loadTable /
43 caslib='CASUSER',
44 path='ProduitsComp.sashdat',
45 casOut={name='ProduitsRecharges', replace=TRUE};
46 
47 PRINT 'Table ProduitsRecharges rechargée en mémoire :';
48 TABLE.tableInfo / name='ProduitsRecharges', caslib='CASUSER';
49 
50 /* Afficher quelques lignes pour vérifier */
51 TABLE.fetch /
52 TABLE={name='ProduitsRecharges', caslib='CASUSER'},
53 to=5;
54QUIT;
4 Codeblock
PROC CAS Data
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!
1/* Créer une table temporaire pour la démonstration */
2DATA _null_;
3 file _webout;
4 put 'ID,Valeur';
5 put '1,10';
6 put '2,20';
7 put '3,30';
8RUN;
9%let temp_data_file = %sysfunc(pathname(temp));
10filename _tmp_data_ temp filevar=_webout;
11DATA _null_;
12 file _tmp_data_;
13 INPUT;
14 put _infile_;
15RUN;
16 
17PROC 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 :';
38 TABLE.tableInfo / name='TempTable_Saved', caslib='CASUSER';
39 
40 /* Vérifier l'état de la session CAS */
41 SESSION.info RESULT=sinfo;
42 PRINT 'Informations sur la session CAS:';
43 PRINT sinfo;
44 
45 /* Lister toutes les caslibs disponibles */
46 BUILTINS.listCaslibs RESULT=caslibs;
47 PRINT 'Caslibs disponibles:';
48 PRINT caslibs;
49 
50 /* Supprimer les tables temporaires créées */
51 TABLE.dropTable / name='TempTable';
52 TABLE.dropTable / name='TempTable_Saved', caslib='CASUSER';
53QUIT;
54 
55filename _tmp_data_ clear;
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