如何将sas7bdat文件转换为csv?

时间:2014-10-23 16:17:31

标签: csv hadoop hive sas hdfs

我想将.sas7bdat文件转换为.csv / txt格式,以便我可以将其上传到配置单元表中。 我从外部服务器收到.sas7bdat文件,但我的机器上没有SAS。

提前致谢。

5 个答案:

答案 0 :(得分:7)

使用其中一个R外包读取该文件,然后使用该工具转换为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  

答案 1 :(得分:3)

python包sas7bdat,可用here,包含一个用于读取sas7bdat文件的库:

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

命令行程序,无需编程

$ sas7bdat_to_csv in.sas7bdat out.csv

答案 2 :(得分:2)

如果这是一次性的,您可以从这里免费下载SAS系统查看器(注册帐户后也是免费的):

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

然后,您可以使用查看器打开sas数据集并将其另存为csv文件。据我所知,没有CLI,但如果你真的想要,你可以编写一个autohotkey脚本或类似的东西来将SAS数据集转换为csv。

也可以使用OLE DB的SAS提供程序读取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

答案 3 :(得分:2)

我最近写了这个包,允许你使用Hadoop / Spark将sas7bdat转换为csv。它能够分割巨大的sas7bdat文件,从而实现高并行性。解析还使用@Ashpreet

建议的parso

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

答案 4 :(得分:1)

感谢您的帮助。我在java中使用parso实用程序结束了我们,它就像一个魅力。该实用程序将行作为对象数组返回,我将其写入文本文件。

我从http://lifescience.opensource.epam.com/parso.html

引用了该实用程序

由于