La acción executeProgram permite enviar y ejecutar código Scala arbitrario directamente dentro de la instancia de SAS Embedded Process que se ejecuta en un clúster Spark. Esta capacidad es fundamental para extender la funcionalidad analítica estándar de SAS Viya aprovechando las APIs nativas de Spark para tareas de procesamiento de datos personalizadas o algoritmos específicos no cubiertos por otras acciones.
| Parámetro | Descripción |
|---|---|
| caslib | Especifica la caslib que contiene las opciones de la fuente de datos y define la conexión con el clúster Spark. Es un parámetro obligatorio. Alias: datasourceFromCasLib. |
| program | Especifica el programa Scala arbitrario en formato de texto plano que se ejecutará dentro de Spark utilizando el SAS Embedded Process. |
| programFile | Especifica el nombre de un archivo local que contiene el programa Scala arbitrario que se enviará para su ejecución. |
Establece la sesión CAS. Se asume que existe una caslib llamada 'SparkLib' configurada correctamente para conectar con el clúster Spark.
| 1 | cas mySession sessopts=(caslib="casuser"); |
| 2 | LIBNAME casuser cas caslib="casuser"; |
| 3 |
Envía una instrucción simple de Scala para imprimir un mensaje en los registros del ejecutor de Spark.
| 1 | |
| 2 | PROC CAS; |
| 3 | sparkEmbeddedProcess.executeProgram / caslib="SparkLib" program="println(\"Hola desde SAS Embedded Process\")"; |
| 4 | |
| 5 | RUN; |
| 6 |
Ejecuta un bloque de código Scala que paraleliza un rango de números y calcula su suma utilizando las funciones nativas del contexto de Spark (sc).
| 1 | |
| 2 | PROC CAS; |
| 3 | sparkEmbeddedProcess.executeProgram / caslib="SparkLib" program="val rdd = sc.parallelize(1 to 1000); |
| 4 | val suma = rdd.reduce(_ + _); |
| 5 | println(s\"La suma calculada en Spark es: $suma\")"; |
| 6 | |
| 7 | RUN; |
| 8 |