Publicado el :
ETL CREATION_INTERNE

Recorrido Detallado de un Programa DATA Step

Este código también está disponible en: Deutsch English Français
En espera de validación
El análisis funcional de este documento destaca la integración perfecta del tradicional DATA Step de SAS© con el motor de procesamiento distribuido CAS. Explica cómo las instrucciones SAS© clásicas como SET, KEEP y DROP funcionan en CAS, enfatizando que el DATA Step se ejecuta donde se almacenan los datos. El documento también aborda el procesamiento multihilo por defecto de los DATA Steps en CAS, las condiciones necesarias para que un DATA Step se ejecute en CAS (las tablas de entrada y salida deben ser tablas CAS, o una tabla de salida CAS con al menos una variable), el papel de las caslibs como contenedores para archivos y tablas en memoria, y el uso recomendado de PROC CASUTIL para cargar conjuntos de datos SAS© a CAS. Finalmente, menciona la opción del sistema DSACCEL= para controlar la ubicación de ejecución del DATA Step.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos utilizan datos generados (datalines) o la biblioteca SASHELP, lo que garantiza la autonomía de cada bloque de código.

1 Bloque de código
PROC CASUTIL / PROC PRINT Data
Explicación :
Este ejemplo inicializa una sesión CAS y una libname asociada, luego carga las primeras 10 observaciones de la tabla 'cars' de la biblioteca SASHELP en una tabla CAS llamada 'cars_basic'. Finalmente, muestra las primeras 10 observaciones de esta tabla CAS para verificación.
¡Copiado!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_basic' replace;
9RUN; QUIT;
10 
11PROC PRINT DATA=mycas.cars_basic(obs=10);
12title '10 premières observations de SASHELP.CARS dans CAS';
13RUN;
2 Bloque de código
DATA STEP Data
Explicación :
Después de cargar la tabla 'cars' en CAS, este bloque de código crea una nueva tabla CAS, 'cars_transformed_mpg', calculando una nueva variable 'CombinedMPG' a partir de las variables MPG_Highway y MPG_City. Utiliza una ponderación simple (40% carretera, 60% ciudad) y formatea la nueva variable, luego muestra las primeras 10 líneas.
¡Copiado!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_transformed' replace;
9RUN; QUIT;
10 
11DATA mycas.cars_transformed_mpg(promote=yes);
12 SET mycas.cars_transformed;
13 CombinedMPG = (MPG_Highway * 0.40) + (MPG_City * 0.60);
14 FORMAT CombinedMPG 5.1;
15RUN;
16 
17PROC PRINT DATA=mycas.cars_transformed_mpg(obs=10);
18 var Make Model CombinedMPG;
19 title 'MPG Combiné calculé (10 premières observations)';
20RUN;
3 Bloque de código
DATA STEP / PROC PRINT Data
Explicación :
Este ejemplo carga primero los datos 'cars' en CAS. Luego, ejecuta un DATA Step complejo en CAS que filtra los vehículos para incluir solo SUVs de origen 'USA' o Sedanes de origen 'Asia'. Se calcula una nueva variable 'AvgMPG'. El procesamiento 'BY Origin Type' permite agrupar los resultados, y se muestra un mensaje en el log en cada nuevo grupo para ilustrar el procesamiento por grupo. Finalmente, muestra los resultados filtrados y procesados.
¡Copiado!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5PROC CASUTIL;
6 load DATA=sashelp.cars
7 outcaslib='casuserhdfs'
8 casout='cars_filtered' replace;
9RUN; QUIT;
10 
11DATA mycas.cars_filtered_grouped(promote=yes);
12 SET mycas.cars_filtered;
13 BY Origin Type;
14 where (Type = 'SUV' and Origin = 'USA') or (Type = 'Sedan' and Origin = 'Asia');
15 AvgMPG = mean(MPG_City, MPG_Highway);
16 IF first.Origin THEN put '---- Nouvelle Origine et Type ----';
17 put Origin= Type= AvgMPG= Make=;
18 keep Origin Type Make AvgMPG;
19RUN;
20 
21PROC PRINT DATA=mycas.cars_filtered_grouped;
22 title 'MPG Moyen des SUV Américains et Sedans Asiatiques';
23RUN;
4 Bloque de código
PROC CASUTIL Data
Explicación :
Este ejemplo destaca las capacidades de gestión de tablas de PROC CASUTIL. Primero crea una pequeña tabla CAS temporal. Luego, utiliza 'LIST TABLES' para ver las tablas disponibles, 'CONTENTS' para obtener información detallada sobre la tabla temporal, y 'DROPTABLE' para eliminarla de la memoria CAS. Un segundo comando 'LIST TABLES' confirma la eliminación. Esto demuestra el ciclo de vida básico de una tabla CAS en memoria.
¡Copiado!
1cas casauto;
2LIBNAME mycas cas;
3caslib _all_ assign;
4 
5* Création d'une table CAS temporaire pour la démonstration;
6DATA mycas.temp_table(promote=yes);
7 x = 1;
8 y = 'Test';
9RUN;
10 
11PROC CASUTIL;
12 list tables caslib='casuserhdfs'; * Liste toutes les tables dans la caslib spécifiée;
13 contents casdata='temp_table'; * Affiche les détails de la table temp_table;
14 droptable casdata='temp_table'; * Supprime la table temp_table de la mémoire CAS;
15 list tables caslib='casuserhdfs'; * Vérifie que la table a été supprimée;
16RUN; QUIT;
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 © SAS Institute Inc. All Rights Reserved.