.sas7bdatファイルを.csv/txt形式に変換して、Hiveテーブルにアップロードできるようにします。外部サーバーから.sas7bdatファイルを受信していますが、マシンにSASがありません。
前もって感謝します。
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
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
これが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
私は最近、Hadoop/Sparkを使用してsas7bdatをcsvに変換できるこのパッケージを作成しました。巨大なsas7bdatファイルを分割できるため、高い並列処理を実現できます。解析では、@ Ashpreetが提案するようにparsoも使用します
ご協力いただきありがとうございます。 Javaでparsoユーティリティの使用を終了しましたが、それは魅力のように機能しました。ユーティリティは、テキストファイルに書き込んだオブジェクト配列として行を返します。
私はユーティリティを以下から参照しました: http://lifescience.opensource.epam.com/parso.html
ありがとう