簡體   English   中英

如何在Python中遠程查詢sas7bdat文件

[英]How to remotely query sas7bdat file in Python

我正在嘗試使用Python查詢以SAS的sas7bdat文件格式存儲的數據庫(我沒有SAS)。 sas7bdat文件存儲在一個遠程服務器上,我可以通過SSH連接訪問paramiko,但是太大了,無法用Python的sas7bdat模塊讀取或在本地下載。

誰能想到使用SSH連接查詢 sas7bdat文件的方法,並將查詢結果加載到Python(Pandas DataFrame等)? 或許是一種完全不同的方法?

.sas7bdat是一種專有的數據庫格式,必須進行反向工程才能訪問。 如果您沒有安裝sas7bdat Python模塊,則在沒有創建可以讀取文件的自定義腳本的情況下,您將無法查詢它。 這假設文件是​​未壓縮的; 如果它被壓縮,你將有更難以閱讀它。

我建議閱讀Python sas7bdat腳本R代碼,以了解如何讀取文件。

一個更簡單的解決方案是獲得安裝sas7bdat文件的權限; 如果它對你正在做的工作至關重要,你的管理員會給你許可。

您可以嘗試使用Carolina S-JDBC查詢sas7bdat文件。 它支持SQL語法,因此您可以對數據進行分組,並在包括Python在內的不同語言環境中正常運行:

import jaydebeapi

conn = jaydebeapi.connect('com.dullesopen.jdbc.Driver',
         'jdbc:carolina:v2:libnames=(dir=\'./mydata\')',
         'sjdbc/carolina-jdbc-2.0.4.jar')
curs = conn.cursor()
# select a subset of data
curs.execute( "SELECT * FROM big_sasfile WHERE id < 1000")
# replace with saving to a file
print curs.fetchall()

conn.close()

如果您沒有jaydebeapi Python模塊,並且無法在沒有root訪問權限的情況下安裝它,您可以編寫一個小型Java程序,使用驅動程序對sas7bdat文件運行查詢。

S-JDBC是一個獨立的jar文件,因此除了主目錄之外,您不需要任何權限來“安裝”它。

免責聲明: Carolina S-JDBC是Dulles Research的商業產品,提供免費評估。 我為Dulles Research工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM