Publicado el :
ETL SASHELP

Resultados Repetibles con DATA Step Distribuido (Grupos BY)

Este código también está disponible en: Deutsch Français
En espera de validación
El script comienza configurando el entorno CAS asignando una CASLIB llamada CASWORK a la caslib 'casuser' y definiendo CASWORK como la biblioteca de usuario predeterminada para tablas de un solo nivel. Luego, vincula todas las librefs CAS y las CASLIB por defecto al cliente SAS©. Se utiliza un DATA Step para cargar el conjunto de datos 'baseball' de la biblioteca 'sashelp' en una tabla CAS llamada 'caswork.baseball', agregando una variable única '_n_' llamada 'row_id'. Un segundo DATA Step procesa 'caswork.baseball' usando una instrucción BY en las variables 'div', 'team' y 'row_id' (agregada para la reproducibilidad). La instrucción 'if first.team then output;' asegura que solo se seleccione la primera observación de cada equipo, produciendo así resultados consistentes y reproducibles en un entorno distribuido.
Análisis de datos

Type : SASHELP


El script utiliza el conjunto de datos 'baseball' de la biblioteca estándar 'sashelp', que está intrínsecamente disponible en SAS.

1 Bloque de código
Configuration CAS
Explicación :
Este bloque configura el acceso a CAS. Crea una biblioteca SAS ('CASWORK') que apunta a una caslib CAS ('casuser'), define esta biblioteca como la ubicación predeterminada para tablas de un solo nivel y asigna todas las caslibs disponibles a la sesión SAS. La macro '%put &_sessref_;' muestra el identificador de la sesión CAS activa.
¡Copiado!
1LIBNAME CASWORK cas caslib=casuser;
2options USER = CASWORK;
3caslib _all_ assign;
4%put &_sessref_;
2 Bloque de código
DATA STEP Data
Explicación :
Este DATA Step carga el conjunto de datos 'baseball' de la biblioteca 'sashelp' (una biblioteca SAS predeterminada) a una nueva tabla CAS llamada 'baseball' en la caslib 'caswork'. También crea una nueva variable 'row_id' que es una secuencia numérica única para cada fila ('_n_'). Esta variable es crucial para garantizar la reproducibilidad en un entorno distribuido.
¡Copiado!
1DATA caswork.baseball;
2 SET sashelp.baseball;
3 row_id=_n_;
4RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Este DATA Step procesa la tabla CAS 'caswork.baseball'. La instrucción BY especifica la clasificación por 'div', 'team' y el identificador único 'row_id'. La expresión 'if first.team then output;' selecciona solo la primera observación para cada combinación única de 'team'. La inclusión de 'row_id' en la instrucción BY asegura que, incluso en un entorno CAS distribuido donde el orden de las filas puede variar entre nodos, la selección del 'first.team' sigue siendo determinista y reproducible.
¡Copiado!
1DATA caswork.nodup;
2 SET caswork.baseball;
3 BY div team row_id ;
4 IF first.team THEN OUTPUT;
5RUN;
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