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 說明了該軟體包的發布和許可方式。