SAS SWAT包是SAS 云分析服务 (CAS)引擎(SAS Viya 框架的核心)的 Python 接口。使用此软件包,您可以在桌面或云中加载和分析任何大小的数据集。由于CAS可以在本地桌面或托管云环境中使用,因此您可以使用所需的处理能力来分析极大的数据集,同时仍然保留 Python 在客户端的易用性。
使用SWAT ,您可以执行CAS分析操作的工作流程,然后提取汇总数据以在 Python 客户端上进一步处理,或者使用熟悉的 Pandas 数据结构与其他来源的数据合并。事实上, SWAT包模仿了 Pandas 包的大部分 API,因此当前的 Pandas 用户应该对 CAS 的使用感到熟悉。
凭借云中同类最佳的SAS分析以及 Python 及其大量开源软件包的使用, SWAT软件包让您能够两全其美。
要查看此项目的更新,请参阅更改日志。
要访问 CAS 二进制协议(推荐),您需要以下内容:
二进制协议仅需要pip
安装程序中的预编译组件。这些片段不以源代码形式提供,需要单独的许可证(请参阅 SAS TK 文档)。二进制协议提供比 REST 更好的性能,尤其是在传输大量数据时。它还提供了更高级的客户端数据加载和数据格式化功能。
如果仅访问 CAS REST 接口,您可以使用纯 Python 代码,该代码在所有平台上的 Python 3.7 至 3.11 中运行。虽然不如二进制协议快,但纯 Python 接口更可移植。
某些 Linux 发行版默认情况下可能不会安装所有所需的共享库。最值得注意的是,需要共享库libnuma.so.1
来建立与 CAS 的二进制协议连接。如果您的计算机上没有此库,您可以为您的发行版安装numactl
软件包,以使其可供 SWAT 使用。
SWAT 包使用了 Pandas Python 包的许多功能以及 Pandas 的其他依赖项。如果您尚未安装 0.16.0 或更高版本的 Pandas, pip
将在您安装 SWAT 时为您安装或更新它。
如果您使用pip
版本 23.1 或更高版本从 tar.gz 文件安装,则需要 pythonwheel 包。如果您没有安装此软件包,可以使用pip
安装它。
SWAT 可以使用pip
安装:
pip install swat
您还可以从 SWAT 项目发布页面上的文件进行安装。只需找到适合您平台的文件并使用pip
安装它,如下所示:
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
其中XXX
是您要安装的版本, platform
是您要安装的平台。如果您只想使用 CAS REST 接口,也可以使用源代码分发版。它不包含对二进制协议的支持。
如需完整文档,请访问 sassoftware.github.io/python-swat。下面显示了一个简单的示例。
安装 SWAT 并拥有要连接的 CAS 服务器后,您可以导入 swat 并创建连接:
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
请注意,Python SWAT 连接的默认端口是 5570。
如果您使用 python-swat 版本 1.8.0 或更高版本通过 Kerberos 连接到 SAS Viya 3.5 CAS 服务器,则在连接之前,您必须使用 CASSPN 环境变量设置服务主体名称 (SPN)。对于 SAS Viya 3.5,SPN 字符串必须以“sascas@”开头,后跟主机名。
export CASSPN=sascas@host
如果您收到有关TCP/IP negClientSSL 支持例程的错误消息,则您的 SSL 证书配置可能存在问题。有关详细信息,请参阅加密文档。
如果成功,您应该能够在 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()
贡献者协议详细说明了如何为项目做出贡献。贡献包括与为项目做出贡献相关的说明和规则。
LICENSE.md 说明了该软件包的发布和许可方式。