La acción 'table.upload' permite cargar archivos locales o remotos en una tabla en memoria CAS. La acción 'table.save' persiste una tabla en memoria a una fuente de datos persistente (por ejemplo, un archivo SASHDAT) asociada a una caslib. Finalmente, 'table.dropTable' elimina una tabla de la memoria CAS. El script también utiliza 'proc http' para descargar un archivo CSV y 'pathname' para manipular rutas de archivos temporales, asegurando así que el ejemplo sea autónomo.
Análisis de datos
Type : TELECHARGEMENT_EXTERNE_PUIS_CREATION_INTERNE
Los ejemplos descargan un archivo CSV desde un servidor SAS o crean datos internamente (datalines) para las demostraciones.
1 Bloque de código
PROC CAS, DATA step Data
Explicación : Este ejemplo crea un archivo CSV simple utilizando un paso DATA, luego lo carga en una tabla CAS en memoria llamada 'MaTableSimple'. Luego, guarda esta tabla con el nombre 'MaTableSimpleSauvegardee' en la caslib activa y finalmente, elimina la tabla original 'MaTableSimple' de la memoria CAS. La acción 'table.tableInfo' se utiliza para verificar la existencia de las tablas.
¡Copiado!
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 Bloque de código
PROC CAS
Explicación : Este ejemplo descarga un archivo CSV 'air.csv', lo carga en memoria CAS con el nombre 'AirData' utilizando 'importOptions' para una mejor detección de los tipos de variables. Luego guarda esta tabla en memoria como un archivo SASHDAT llamado 'AirDataSauvegardee.sashdat' en la caslib 'CASUSER', y luego la 'promueve' para hacerla accesible a otras sesiones. Finalmente, la tabla original 'AirData' es eliminada de la memoria.
¡Copiado!
/* 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;
Explicación : Este ejemplo avanzado crea una tabla SAS en memoria ('Productos') con formatos y etiquetas a través de un paso DATA. Luego guarda esta tabla en formato SASHDAT con compresión 'saszpg' y la almacena en la caslib 'CASUSER'. La tabla original se elimina, y luego la tabla guardada se recarga en memoria bajo un nuevo nombre ('ProduitsRecharges') para demostrar el ciclo completo. Las primeras líneas de la tabla recargada se muestran para verificación.
¡Copiado!
/* 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';
Explicación : Este ejemplo demuestra operaciones CAS avanzadas. Después de crear y cargar una tabla temporal, la guarda en la caslib 'CASUSER'. Luego utiliza la acción 'session.info' para obtener detalles sobre la sesión CAS actual y 'builtins.listCaslibs' para listar todas las caslibs disponibles, lo cual es útil para la gestión de recursos y la depuración. Finalmente, las tablas temporales son eliminadas.
¡Copiado!
/* 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 :';
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.