web-dev-qa-db-ja.com

sas7bdatファイルをcsvに変換する方法は?

.sas7bdatファイルを.csv/txt形式に変換して、Hiveテーブルにアップロードできるようにします。外部サーバーから.sas7bdatファイルを受信して​​いますが、マシンにSASがありません。

前もって感謝します。

7
Ashpreet Bedi

R個の外部パッケージの1つを使用してファイルを読み取り、そのツールでCSVに変換します。

http://cran.r-project.org/doc/manuals/R-data.pdf 12ページ

代わりにSAS7BDATパッケージを使用します。カスタムフォーマットを無視し、基になるデータを読み取っているようです。

SASの場合:

proc format;
value agegrp
   low - 12 = 'Pre Teen'
   13 -15 = 'Teen'
   16 - high = 'Driver';
run;

libname test 'Z:\Consulting\SAS Programs';

data test.class;
set sashelp.class;
age2=age;
format age2 agegrp.;
run;

Rの場合:

 install.packages(sas7bdat)
 library(sas7bdat)
 x<-read.sas7bdat("class.sas7bdat", debug=TRUE)
 x  
8
Reeza

pythonパッケージsas7bdat、利用可能 ここ 、sas7bdatファイルを読み取るためのライブラリが含まれています:

from sas7bdat import SAS7BDAT
with SAS7BDAT('foo.sas7bdat') as f:
    for row in f:
        print row

およびコマンドラインプログラムはプログラミングを必要としません

$ sas7bdat_to_csv in.sas7bdat out.csv
4
Andrew

これが1回限りの場合は、ここからSASシステムビューアを無料でダウンロードできます(アカウントの登録後、これも無料です)。

http://support.sas.com/downloads/package.htm?pid=176

次に、ビューアを使用してsasデータセットを開き、csvファイルとして保存できます。私の知る限りCLIはありませんが、本当に必要な場合は、オートホットキースクリプトなどを記述して、SASデータセットをcsvに変換できます。

SASDBのOLEプロバイダーを使用して、実際にSASをインストールしなくても、SASデータセットを読み取ることもできます。これはこちらから入手できます。 :

http://support.sas.com/downloads/browse.htm?fil=0&cat=64

ただし、これはかなり複雑です。アイデアが必要な場合は、ここにいくつかのドキュメントがあります。

http://support.sas.com/documentation/cdl/en/oledbpr/59558/PDF/default/oledbpr.pdf

2
user667489

私は最近、Hadoop/Sparkを使用してsas7bdatをcsvに変換できるこのパッケージを作成しました。巨大なsas7bdatファイルを分割できるため、高い並列処理を実現できます。解析では、@ Ashpreetが提案するようにparsoも使用します

https://github.com/saurfang/spark-sas7bdat

2
Saurfang

ご協力いただきありがとうございます。 Javaでparsoユーティリティの使用を終了しましたが、それは魅力のように機能しました。ユーティリティは、テキストファイルに書き込んだオブジェクト配列として行を返します。

私はユーティリティを以下から参照しました: http://lifescience.opensource.epam.com/parso.html

ありがとう

1
Ashpreet Bedi