El paquete SAS SWAT es una interfaz Python para el motor SAS Cloud Analytic Services (CAS) (la pieza central del marco SAS Viya). Con este paquete, puede cargar y analizar conjuntos de datos de cualquier tamaño en su escritorio o en la nube. Dado que CAS se puede utilizar en un escritorio local o en un entorno de nube alojado, puede analizar conjuntos de datos extremadamente grandes utilizando toda la potencia de procesamiento que necesite, manteniendo al mismo tiempo la facilidad de uso de Python en el lado del cliente.
Con SWAT , puede ejecutar flujos de trabajo de acciones analíticas de CAS y luego extraer los datos resumidos para procesarlos aún más en el lado del cliente en Python o fusionarlos con datos de otras fuentes utilizando estructuras de datos familiares de Pandas. De hecho, el paquete SWAT imita gran parte de la API del paquete Pandas, por lo que el uso de CAS debería resultar familiar para los usuarios actuales de Pandas.
Con los mejores análisis de SAS en la nube y el uso de Python y su gran colección de paquetes de código abierto, el paquete SWAT le brinda acceso a lo mejor de ambos mundos.
Para ver las actualizaciones de este proyecto, consulte el Registro de cambios.
Para acceder al protocolo binario CAS (recomendado), necesita lo siguiente:
El protocolo binario requiere componentes precompilados que se encuentran únicamente en el instalador pip
. Estas piezas no están disponibles como código fuente y están bajo una licencia separada (consulte la documentación sobre SAS TK). El protocolo binario ofrece un mejor rendimiento que REST, especialmente cuando se transfieren grandes cantidades de datos. También ofrece carga de datos más avanzada desde el cliente y funciones de formato de datos.
Para acceder únicamente a la interfaz CAS REST, puede utilizar el código Python puro que se ejecuta en Python 3.7 a 3.11 en todas las plataformas. Si bien no es tan rápida como el protocolo binario, la interfaz pura de Python es más portátil.
Es posible que algunas distribuciones de Linux no instalen todas las bibliotecas compartidas necesarias de forma predeterminada. En particular, se requiere la biblioteca compartida libnuma.so.1
para realizar conexiones de protocolo binario a CAS. Si no tiene esta biblioteca en su máquina, puede instalar el paquete numactl
para su distribución para que esté disponible para SWAT.
El paquete SWAT utiliza muchas características del paquete Pandas Python y otras dependencias de Pandas. Si aún no tiene instalada la versión 0.16.0 o superior de Pandas, pip
la instalará o actualizará cuando instale SWAT.
Si está utilizando la versión 23.1 o posterior pip
para instalar desde un archivo tar.gz, se requiere el paquete python wheel. Si no tiene este paquete instalado, puede instalarlo usando pip
.
SWAT se puede instalar usando pip
:
pip install swat
También puede instalar desde los archivos en la página de lanzamientos del proyecto SWAT. Simplemente ubique el archivo para su plataforma e instálelo usando pip
de la siguiente manera:
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
Donde XXX
es la versión que desea instalar y platform
es la plataforma en la que está instalando. También puede utilizar la distribución del código fuente si solo desea utilizar la interfaz CAS REST. No contiene soporte para el protocolo binario.
Para obtener la documentación completa, vaya a sassoftware.github.io/python-swat. A continuación se muestra un ejemplo sencillo.
Una vez que haya instalado SWAT y tenga un servidor CAS al que conectarse, puede importar swat y crear una conexión::
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
Tenga en cuenta que el puerto predeterminado para la conexión Python SWAT es 5570.
Si está utilizando python-swat versión 1.8.0 o posterior para conectarse a un servidor CAS SAS Viya 3.5 usando Kerberos, antes de conectarse debe configurar el nombre principal del servicio (SPN) usando la variable de entorno CASSPN. Para SAS Viya 3.5, la cadena SPN debe comenzar con 'sascas@', seguida del nombre de host.
export CASSPN=sascas@host
Si recibe un mensaje de error sobre la rutina de soporte TCP/IP negClientSSL , probablemente tenga un problema con la configuración de su certificado SSL. Consulte la documentación sobre cifrado para obtener más información.
Si esto tiene éxito, debería poder ejecutar una acción en el servidor CAS:
>>> out = conn.serverstatus()
NOTE: Grid node action status report: 1 nodes, 6 total actions executed.
>>> print(out)
[About]
{'CAS': 'Cloud Analytic Services',
'Copyright': 'Copyright © 2014-2016 SAS Institute Inc. All Rights Reserved.',
'System': {'Hostname': 'cas01',
'Model Number': 'x86_64',
'OS Family': 'LIN X64',
'OS Name': 'Linux',
'OS Release': '2.6.32-504.12.2.el6.x86_64',
'OS Version': '#1 SMP Sun Feb 1 12:14:02 EST 2015'},
'Version': '3.01',
'VersionLong': 'V.03.01M0D08232016',
'license': {'expires': '20Oct2016:00:00:00',
'gracePeriod': 62,
'site': 'SAS Institute Inc.',
'siteNum': 1,
'warningPeriod': 31}}
[server]
Server Status
nodes actions
0 1 6
[nodestatus]
Node Status
name role uptime running stalled
0 cas01 controller 4.836 0 0
+ Elapsed: 0.0168s, user: 0.016s, sys: 0.001s, mem: 0.287mb
>>> conn.close()
El Acuerdo de Contribuyente detalla cómo se pueden realizar contribuciones al proyecto. La Contribución incluye instrucciones y reglas relacionadas con la realización de contribuciones al proyecto.
LICENSE.md indica cómo se publica y se otorga la licencia de este paquete.