Publicado el :

Gestión de formatos SAS en CAS

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El script inicializa una sesión CAS y asigna todas las caslibs disponibles. Lista las librerías de formatos CAS existentes, luego crea un conjunto de datos temporal 'cars' a partir de 'sashelp.cars'. Se crea un formato SAS©9 llamado 'enginesize' localmente y una copia se crea automáticamente en una librería de formatos CAS dedicada ('casformats'). Esta librería de formatos es luego promovida para hacerla global y persistente en memoria. El script guarda la librería de formatos en un archivo SASHDAT para asegurar su persistencia más allá de los reinicios del servidor CAS, luego verifica la existencia del archivo. A continuación, se crea un conjunto de datos CAS utilizando el formato definido. Finalmente, el script muestra cómo eliminar las librerías de formatos de sesión y globales, y luego cómo recargar un formato desde el archivo SASHDAT, listando los formatos y sus valores para validar la operación.
Análisis de datos

Type : MIXTE


El script utiliza el conjunto de datos SASHELP.CARS, una fuente de datos interna de SAS, para la creación de los datos iniciales. Se crean conjuntos de datos temporales ('cars') y conjuntos de datos CAS ('casuser.cars_cas') internamente y se utilizan para aplicar los formatos.

1 Bloque de código
CASL
Explicación :
Este bloque inicializa una sesión de Cloud Analytic Services (CAS) y asigna todas las caslibs disponibles, permitiendo el acceso a datos y recursos de CAS. Luego, lista todas las librerías de formatos CAS cargadas actualmente, proporcionando una visión general del estado inicial de los formatos.
¡Copiado!
1cas;
2caslib _all_ assign;
3 
4cas casauto listformats;
2 Bloque de código
DATA STEP Data
Explicación :
Crea un conjunto de datos temporal llamado 'cars' en la librería WORK a partir del conjunto de datos SASHELP.CARS. Este conjunto de datos se utilizará posteriormente para crear formatos y tablas CAS.
¡Copiado!
1DATA cars;
2 SET sashelp.cars;
3RUN;
3 Bloque de código
PROC FORMAT
Explicación :
Este bloque define un formato de usuario 'enginesize' en la librería WORK.FORMATS. Gracias a la opción `casfmtlib="casformats"`, se crea automáticamente una copia de este formato y se añade a una nueva librería de formatos CAS llamada 'casformats'. Este formato categoriza los tamaños de motor en diferentes categorías descriptivas.
¡Copiado!
1PROC FORMAT library=work.formats casfmtlib="casformats" ;
2 value enginesize
3 low - <2.7 = "Very economical"
4 2.7 - <4.1 = "Small"
5 4.1 - <5.5 = "Medium"
6 5.5 - <6.9 = "Large"
7 6.9 - high = "Very large";
8RUN;
4 Bloque de código
CASL
Explicación :
Lista de nuevo las librerías de formatos CAS para confirmar la creación de la librería 'casformats' después de la ejecución de PROC FORMAT.
¡Copiado!
1cas casauto listformats;
5 Bloque de código
CASL
Explicación :
Promueve la librería de formatos 'casformats' para hacerla global y persistente en la memoria CAS. Esto permite que otros usuarios o sesiones CAS accedan a este formato sin tener que redefinirlo.
¡Copiado!
1cas casauto promotefmtlib fmtlibname='casformats';
6 Bloque de código
CASL
Explicación :
Lista las librerías de formatos después de la promoción para verificar el estado de la librería 'casformats' (debería aparecer como promovida).
¡Copiado!
1cas casauto listformats;
7 Bloque de código
CASL
Explicación :
Guarda la librería de formatos 'casformats' en un archivo SASHDAT llamado 'casfmt_table' dentro de la caslib 'formats'. Esta operación asegura la persistencia del formato más allá de los reinicios del servidor CAS.
¡Copiado!
1cas casauto savefmtlib fmtlibname='casformats' caslib='formats' TABLE='casfmt_table' replace;
2 
8 Bloque de código
PROC CASUTIL
Explicación :
Utiliza PROC CASUTIL para listar los archivos presentes en la caslib 'formats' y confirmar que el archivo SASHDAT 'casfmt_table' que contiene los formatos ha sido creado y es accesible.
¡Copiado!
1 
2PROC CASUTIL incaslib='formats';
3list files;
4QUIT;
5 
9 Bloque de código
DATA STEP Data
Explicación :
Crea un conjunto de datos CAS llamado 'cars_cas' en la caslib 'casuser' a partir de SASHELP.CARS, y aplica el formato 'enginesize' a la variable 'EngineSize'. El bloque muestra luego las 10 primeras observaciones del nuevo conjunto de datos para verificar la aplicación correcta del formato CAS.
¡Copiado!
1DATA casuser.cars_cas(replace=yes);
2 SET sashelp.cars;
3 FORMAT enginesize enginesize.;
4RUN;
5 
6PROC PRINT DATA=casuser.cars_cas(obs=10);
7var EngineSize;
8RUN;
10 Bloque de código
CASL
Explicación :
Lista de nuevo las librerías de formatos CAS para un estado actual después de usar el formato.
¡Copiado!
1cas casauto listformats;
11 Bloque de código
CASL
Explicación :
Elimina la librería de formatos 'CASFORMATS' de la sesión CAS activa. La opción `fmtsearchremove` asegura que también se elimine de las rutas de búsqueda de formatos.
¡Copiado!
1cas casauto dropfmtlib fmtlibname=CASFORMATS fmtsearchremove;
2 
12 Bloque de código
CASL
Explicación :
Lista las librerías de formatos CAS para confirmar que 'CASFORMATS' ha sido eliminada de la sesión.
¡Copiado!
1cas casauto listformats;
13 Bloque de código
CASL
Explicación :
Intenta eliminar de nuevo la librería de formatos 'CASFORMATS'. El comentario del código original indica que puede aparecer un mensaje de advertencia si la librería ya no se encuentra, pero este comando tiene como objetivo asegurar que se retire de cualquier contexto.
¡Copiado!
1cas casauto dropfmtlib fmtlibname=CASFORMATS fmtsearchremove;
2 
14 Bloque de código
CASL
Explicación :
Lista las librerías de formatos CAS para verificar el resultado del intento de eliminación global.
¡Copiado!
1cas casauto listformats;
15 Bloque de código
CASL
Explicación :
Carga una librería de formatos desde el archivo SASHDAT 'casfmt_table' (previamente guardado) y la hace disponible bajo el nuevo nombre 'fmthdat' en la sesión CAS.
¡Copiado!
1cas casauto addfmtlib fmtlibname=fmthdat
2caslib=formats
3TABLE=casfmt_table;
4 
16 Bloque de código
CASL
Explicación :
Lista las librerías de formatos CAS para confirmar la carga de 'fmthdat'.
¡Copiado!
1cas casauto listformats;
17 Bloque de código
CASL
Explicación :
Muestra los miembros (formatos individuales) de todas las librerías de formatos cargadas, y luego lista específicamente los rangos de valores y las etiquetas definidas para el formato 'enginesize', validando su contenido y disponibilidad.
¡Copiado!
1cas casauto listformats members;
2cas casauto listfmtranges fmtname=enginesize;
3 
18 Bloque de código
DATA STEP Data
Explicación :
Vuelve a crear el conjunto de datos CAS 'cars_cas' utilizando el formato 'enginesize' que ha sido recargado desde el archivo SASHDAT, demostrando que el formato está nuevamente activo y utilizable después de una carga desde el almacenamiento persistente.
¡Copiado!
1DATA casuser.cars_cas(replace=yes);
2 SET sashelp.cars;
3 FORMAT enginesize enginesize.;
4RUN;
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.
Información de copyright : Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0