Los ejemplos utilizan tablas CAS creadas directamente a través de DATA steps o acciones 'loadTable' para ilustrar la funcionalidad sin dependencia externa.
1 Bloque de código
PROC CAS Data
Explicación : Este ejemplo demuestra el uso más simple de la acción 'tableDetails'. Primero crea una pequeña tabla llamada 'simple_data' en la caslib 'casuser', luego utiliza la acción para mostrar información resumida sobre esta tabla, como el número de filas y columnas. Por defecto, el nivel de agregación es 'SUM' y la información de memoria está incluida.
¡Copiado!
proc cas;
/* Crée une table simple en mémoire dans la caslib 'casuser' */
data casuser.simple_data;
input id name $;
datalines;
1 Alice
2 Bob
3 Charlie
;
run;
/* Obtient les détails de base pour la table 'simple_data' */
table.tableDetails / name="simple_data";
quit;
1
PROC CAS;
2
/* Crée une table simple en mémoire dans la caslib 'casuser' */
3
DATA casuser.simple_data;
4
INPUT id name $;
5
DATALINES;
6
1 Alice
7
2 Bob
8
3 Charlie
9
;
10
RUN;
11
12
/* Obtient les détails de base pour la table 'simple_data' */
13
TABLE.tableDetails / name="simple_data";
14
QUIT;
2 Bloque de código
PROC CAS Data
Explicación : Este caso muestra cómo usar el parámetro 'caslib' para apuntar a una tabla específica si no se encuentra en la caslib activa. Se crea una tabla 'product_info' y sus detalles se recuperan especificando 'casuser' como caslib. También ilustra el uso del alias 'table' para el parámetro 'name'.
¡Copiado!
proc cas;
/* Crée une table 'product_info' dans la caslib 'casuser' */
data casuser.product_info;
input product $ price;
datalines;
Apple 1.00
Banana 0.50
Orange 0.75
Mango 2.20
;
run;
/* Obtient les détails pour 'product_info' en spécifiant explicitement la caslib. */
/* Utilisation de l'alias 'table' pour le paramètre 'name'. */
table.tableDetails /
table="product_info",
caslib="casuser";
quit;
1
PROC CAS;
2
/* Crée une table 'product_info' dans la caslib 'casuser' */
3
DATA casuser.product_info;
4
INPUT product $ price;
5
DATALINES;
6
Apple 1.00
7
Banana 0.50
8
Orange 0.75
9
Mango 2.20
10
;
11
RUN;
12
13
/* Obtient les détails pour 'product_info' en spécifiant explicitement la caslib. */
14
/* Utilisation de l'alias 'table' pour le paramètre 'name'. */
15
TABLE.tableDetails /
16
TABLE="product_info",
17
caslib="casuser";
18
QUIT;
3 Bloque de código
PROC CAS Data
Explicación : Este ejemplo utiliza una tabla más grande ('large_transactions') para ilustrar cómo obtener detalles a nivel de cada nodo del clúster CAS ('level="NODE"'). También excluye la información detallada sobre el uso de la memoria ('showMem=FALSE') para una salida más concisa, lo que es útil para tablas grandes distribuidas.
¡Copiado!
proc cas;
/* Crée une table plus grande pour simuler la distribution sur plusieurs nœuds */
data casuser.large_transactions;
do i = 1 to 10000;
region = if mod(i, 4) = 0 then 'North'
else if mod(i, 4) = 1 then 'South'
else if mod(i, 4) = 2 then 'East'
else 'West';
amount = 100 + ranuni(0) * 1000;
output;
end;
run;
/* Obtient les détails par nœud sans inclure les informations mémoire */
table.tableDetails /
name="large_transactions",
caslib="casuser",
level="NODE",
showMem=FALSE;
quit;
1
PROC CAS;
2
/* Crée une table plus grande pour simuler la distribution sur plusieurs nœuds */
3
DATA casuser.large_transactions;
4
DO i = 1 to 10000;
5
region = IF mod(i, 4) = 0 THEN'North'
6
ELSEIF mod(i, 4) = 1THEN'South'
7
ELSEIF mod(i, 4) = 2THEN'East'
8
ELSE'West';
9
amount = 100 + ranuni(0) * 1000;
10
OUTPUT;
11
END;
12
RUN;
13
14
/* Obtient les détails par nœud sans inclure les informations mémoire */
15
TABLE.tableDetails /
16
name="large_transactions",
17
caslib="casuser",
18
level="NODE",
19
showMem=FALSE;
20
QUIT;
4 Bloque de código
PROC CAS / table.partition Data
Explicación : Este ejemplo avanzado muestra cómo obtener detalles para una tabla particionada. Crea y particiona una tabla 'raw_sales' por la variable 'Region' usando la acción 'table.partition'. Luego, usa 'tableDetails' con 'level="PARTITION"' para mostrar la información de cada partición. El parámetro 'perNode=2' se usa para limitar la cantidad de detalles reportados por nodo, lo que es útil para manejar el tamaño de la salida con tablas muy distribuidas.
¡Copiado!
proc cas;
/* Crée une table avec des données à partitionner */
data casuser.raw_sales;
input Date:yymmdd. Region $ Sales;
format Date yymmdd10.;
datalines;
2023-01-01 North 100
2023-01-01 South 150
2023-01-02 East 120
2023-01-02 West 180
2023-01-03 North 110
2023-01-03 South 160
2023-01-04 East 130
2023-01-04 West 190
2023-01-05 North 200
2023-01-05 South 210
2023-01-06 East 220
2023-01-06 West 230
;
run;
/* Partitionne la table par la variable 'Region' */
table.partition /
name="raw_sales",
caslib="casuser",
groupBy={"Region"},
casOut={name="partitioned_sales_by_region", caslib="casuser", replace=true};
/* Obtient les détails par partition, en limitant la sortie à 2 blocs par nœud */
table.tableDetails /
name="partitioned_sales_by_region",
caslib="casuser",
level="PARTITION",
perNode=2;
quit;
1
PROC CAS;
2
/* Crée une table avec des données à partitionner */
3
DATA casuser.raw_sales;
4
INPUT Date:yymmdd. Region $ Sales;
5
FORMAT Date yymmdd10.;
6
DATALINES;
7
2023-01-01 North 100
8
2023-01-01 South 150
9
2023-01-02 East 120
10
2023-01-02 West 180
11
2023-01-03 North 110
12
2023-01-03 South 160
13
2023-01-04 East 130
14
2023-01-04 West 190
15
2023-01-05 North 200
16
2023-01-05 South 210
17
2023-01-06 East 220
18
2023-01-06 West 230
19
;
20
RUN;
21
22
/* Partitionne la table par la variable 'Region' */
/* Obtient les détails par partition, en limitant la sortie à 2 blocs par nœud */
30
TABLE.tableDetails /
31
name="partitioned_sales_by_region",
32
caslib="casuser",
33
level="PARTITION",
34
perNode=2;
35
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.
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.