读取压缩的 sas 数据集并动态压缩它们
Reading zipped sas datasets and zipping them on the fly
我在具有 gzip 压缩功能的 unix 服务器上处理大文件,出于 space 的目的,我希望文件保持压缩状态。我知道如何读取压缩的 txt 文件,但随后想:
1) 压缩从压缩的 txt 文件创建的数据集
2) 稍后在另一个 datastep/procedure.
中设置这个压缩的 sas 数据集
这可能吗?如果是这样,请修改下面的代码,这就是我想要做的:
libname lib "path";
filename txtfile PIPE "gzip -dc filepath";
data lib.ds1; **would like this to be a zipped sas dataset**;
infile txtfile dlm="|" missover dsd;
input *columns*;
run;
data lib.ds2; **would like this to be a zipped sas dataset**;
set lib.ds1; *setting the zipped sas dataset;
run;
SAS 无法使用您想要的简单数据步骤以压缩格式(*.7z / *.gzip / *.zip 等)存储 sas 数据集。您需要外部 zip 实用程序来执行此操作(使用 x 语句等)或使用 ods 包。在读取 SAS 数据集之前和之后,需要分别对解压缩和压缩 zip 文件进行单独的逻辑编码。
虽然 SAS 具有压缩数据集的内置功能,但这些数据集是使用 COMPRESS= 数据集选项或系统选项创建的,以压缩数据文件。压缩非常好。
OPTIONS COMPRESS=(YES|CHAR|BINARY)
或
DATA MYSASDATA(COMPRESS=YES|CHAR|BINARY);
您可以在有关 SAS 用于压缩数据集的算法的语言参考中阅读更多内容。
有关更多详细信息,请参阅 SAS Language Ref 中的以下 link:http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000202890.htm
尝试从 SAS 会话执行 GZIP 命令。
data _null_;
command = 'gzip -c /path/ds2.sas7bdat > /path/ds2.sas7bdat.gz';
call system (command);
run;
出于测试目的,请保留 -c 选项。这样您就可以保留原始文件并将其与新压缩的文件进行比较。
我在具有 gzip 压缩功能的 unix 服务器上处理大文件,出于 space 的目的,我希望文件保持压缩状态。我知道如何读取压缩的 txt 文件,但随后想: 1) 压缩从压缩的 txt 文件创建的数据集 2) 稍后在另一个 datastep/procedure.
中设置这个压缩的 sas 数据集这可能吗?如果是这样,请修改下面的代码,这就是我想要做的:
libname lib "path";
filename txtfile PIPE "gzip -dc filepath";
data lib.ds1; **would like this to be a zipped sas dataset**;
infile txtfile dlm="|" missover dsd;
input *columns*;
run;
data lib.ds2; **would like this to be a zipped sas dataset**;
set lib.ds1; *setting the zipped sas dataset;
run;
SAS 无法使用您想要的简单数据步骤以压缩格式(*.7z / *.gzip / *.zip 等)存储 sas 数据集。您需要外部 zip 实用程序来执行此操作(使用 x 语句等)或使用 ods 包。在读取 SAS 数据集之前和之后,需要分别对解压缩和压缩 zip 文件进行单独的逻辑编码。
虽然 SAS 具有压缩数据集的内置功能,但这些数据集是使用 COMPRESS= 数据集选项或系统选项创建的,以压缩数据文件。压缩非常好。
OPTIONS COMPRESS=(YES|CHAR|BINARY)
或
DATA MYSASDATA(COMPRESS=YES|CHAR|BINARY);
您可以在有关 SAS 用于压缩数据集的算法的语言参考中阅读更多内容。
有关更多详细信息,请参阅 SAS Language Ref 中的以下 link:http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000202890.htm
尝试从 SAS 会话执行 GZIP 命令。
data _null_;
command = 'gzip -c /path/ds2.sas7bdat > /path/ds2.sas7bdat.gz';
call system (command);
run;
出于测试目的,请保留 -c 选项。这样您就可以保留原始文件并将其与新压缩的文件进行比较。