Publicado el :
ETL SASHELP

Ejemplos de Joins en CASL y FedSQL

Este código también está disponible en: Deutsch English Français
En espera de validación
El análisis funcional de este script SAS© se descompone en varias etapas principales. Inicialmente, configura una sesión CAS y asigna todas las 'caslibs' disponibles. Luego, prepara dos tablas CAS (baseball_location y baseball_stats) en la biblioteca 'casuser' a partir de la tabla sashelp.baseball, separando la información de ubicación de las estadísticas. Después de definir 'casuser' como la 'caslib' activa, el script procede a ilustrar tres tipos de joins. El primero utiliza PROC FEDSQL para un 'LEFT JOIN' estándar. Los dos siguientes son ejemplos de joins CASL más avanzados, que explotan las acciones 'dlJoin' del conjunto 'deepLearn' y 'searchJoin' del conjunto 'searchAnalytics'. Cada método crea una nueva tabla CAS resultante del join.
Análisis de datos

Type : SASHELP


Los datos fuente provienen de la tabla estándar 'sashelp.baseball'. Dos tablas CAS intermedias, 'casuser.baseball_location' y 'casuser.baseball_stats', se crean a partir de esta fuente para facilitar las demostraciones de join. No se lee ningún dato externo directamente fuera de 'sashelp'.

1 Bloque de código
CAS setup
Explicación :
Este bloque inicializa una sesión CAS y asigna todas las caslibs disponibles, permitiendo el acceso y la manipulación de los datos en la memoria CAS. La línea comentada `cas casauto terminate;` sugiere una opción para terminar una sesión CAS existente.
¡Copiado!
1/* cas casauto terminate;
2*/
3cas;
4caslib _all_ assign;
5 
2 Bloque de código
DATA STEP Data
Explicación :
Creación de una nueva tabla CAS llamada 'baseball_location' en la caslib 'casuser'. Esta tabla se deriva de 'sashelp.baseball', conservando solo las columnas relacionadas con la identificación del jugador y su posición/equipo.
¡Copiado!
1DATA casuser.baseball_location;
2 SET sashelp.baseball;
3 keep name team div division league position;
4RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Creación de una segunda tabla CAS llamada 'baseball_stats' en la caslib 'casuser'. Esta tabla también se deriva de 'sashelp.baseball', pero todas las columnas de ubicación y equipo se eliminan para aislar las estadísticas de los jugadores.
¡Copiado!
1DATA casuser.baseball_stats;
2 SET sashelp.baseball;
3 drop team div division league position ;
4RUN;
4 Bloque de código
OPTIONS Statement
Explicación :
Define 'casuser' como la caslib activa predeterminada para las siguientes operaciones CAS, simplificando así la sintaxis para referenciar las tablas en esta biblioteca.
¡Copiado!
1/* set the active CASLIB */
2options caslib=casuser;
3 
5 Bloque de código
PROC FEDSQL Data
Explicación :
Ejecuta una consulta FedSQL para realizar un left join entre las tablas 'baseball_location' y 'baseball_stats' en la columna 'name'. El resultado se almacena en una nueva tabla CAS llamada 'fedsql'.
¡Copiado!
1/* FedSQL Left join example */
2PROC FEDSQL sessref=casauto;
3 create TABLE fedsql as
4 select distinct a.div, a.division, a.league, a.position, a.team, b.*
5 from baseball_location as a left join
6 baseball_stats as b
7 on a.name=b.name;
8QUIT;
6 Bloque de código
PROC CAS
Explicación :
Carga los conjuntos de acciones CASL 'searchAnalytics' y 'deepLearn'. Estos conjuntos de acciones contienen funcionalidades avanzadas, incluidas acciones de join específicas que se utilizarán en los bloques siguientes.
¡Copiado!
1/* CASL Join Examples */
2PROC CAS;
3LOADACTIONSET 'searchAnalytics';
4LOADACTIONSET 'deepLearn';
5QUIT;
7 Bloque de código
PROC CAS (deepLearn.dlJoin) Data
Explicación :
Demuestra el uso de la acción 'dlJoin' del conjunto 'deepLearn' para realizar un left join. Une 'baseball_location' con 'baseball_stats' utilizando la columna 'name' como identificador, y crea una tabla 'dlJoin' como salida.
¡Copiado!
1/* Deep Learning Action Set dljon action: Examples */
2/* joinType="APPEND" | "FULL" | "INNER" | "LEFT" | "RIGHT" */
3PROC CAS;
4 DEEPLEARN.dlJoin /
5 joinType="LEFT"
6 annotatedTable={name="baseball_location"}
7 casOut={name="dlJoin", replace=TRUE}
8 id="name"
9 TABLE={name="baseball_stats"};
10 RUN;
11QUIT;
8 Bloque de código
PROC CAS (searchAnalytics.searchJoin) Data
Explicación :
Ilustra la acción 'searchJoin' del conjunto 'searchAnalytics' para un left join. Une 'baseball_location' y 'baseball_stats' en la columna 'name', pero con una especificación más detallada de las columnas, incluyendo un cambio de nombre para distinguir las columnas 'name' de las tablas izquierda y derecha. El resultado se guarda en la tabla 'searchJoin'.
¡Copiado!
1/* searchAnalytics Action Set searchJoin action: Examples */
2/* joinType="APPEND" | "FULL" | "INNER" | "LEFT" | "RIGHT" */
3PROC CAS;
4 searchAnalytics.searchJoin /
5 joinType="LEFT"
6 casOut={name="searchJoin", replace=TRUE}
7 leftTable={columns={{isKey=TRUE, name="name"},
8 {name="name",
9 reName="name_left"
10 }
11 }
12 TABLE={name="baseball_location"}
13 }
14 rightTable={columns={{isKey=TRUE, name="name"},
15 {name="name",
16 reName="name_right"
17 }
18 }
19 TABLE={name="baseball_stats"}
20 };
21RUN;
22QUIT;
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