根据文件大小sas将文件拆分为多个文件

时间:2015-07-01 03:35:44

标签: sas

我想知道如何根据特定文件大小将大文件拆分为多个文件。我正在使用File语句,因为它也将作为分隔文本文件导出。

有关如何做到这一点的任何想法?提前谢谢。

以下是我用于将平面文件导出到分隔文本文件的代码:

    data _null_;                                                                                                                                                                                                                                                    
      %let _EFIERR_ = 0; /* set the ERROR detection macro variable */                                                                                                                                                                                          
      %let _EFIREC_ = 0; /* clear export record count macro variable */    

   file "C:\test\file..txt" delimiter=';' DSD DROPOVER lrecl=32767 ENCODING="UTF-8";

标题记录为±300字节,4MB可以容纳7.060条记录,其中每条记录中的每个字段都填充到最大长度(594字节)。 我认为第一次运行最多可以加载7.000条记录。

1 个答案:

答案 0 :(得分:0)

如果你只需要一个快速的&估算安全限制的肮脏方式:

  • 运行proc内容
  • 找出每条记录的长度(以SAS格式存储)
  • 为写入平面文件时较长的字段添加30%的安全边际。 (例如,数字的默认SAS长度为8个字节,但可以写为20或更多,具体取决于使用的格式,如果有的话)
  • 将4mb除以估计的行长度
  • 使用行计数器将大文件块化为适合您的4mb限制的输出文件