【发布时间】:2019-04-04 17:50:13
【问题描述】:
我有一个非常大的数据集,大小为 1T,我需要将其快速拆分为多个子数据集。
以下是分割数据集的传统方式:
Data d1 d2...dn;
Set raw_dataset;
if condition1 then output d1;
else if condition2 then output d2;
...
else if conditionN then output dn;
run;
但是对我来说还是太慢了!!
有什么方法可以加快这个过程吗?
【问题讨论】:
-
根据条件,您可以向原始数据集添加索引。
-
太慢了怎么办?当您“中断”提交时,您让拆分运行多长时间?数据集中有多少行和变量?你要分裂多少?你能举一个分割标准的例子吗?你在什么硬件上? raw_dataset 在本地驱动器上吗?您正在写入网络或云目的地吗?为什么你觉得你需要拆分数据……你能适当地索引数据集以快速检索相关子集吗?您是否检查过系统事件查看器的磁盘 I/O 错误?
-
您是否有权访问 SPDE libname 引擎或 SAS/CONNECT?这些中的任何一个都可以用来获得某种程度的并行性。
-
你试过压缩=输出数据集吗?
-
过滤条件有多复杂?有时数据集选项或其他方法更有效。
标签: sas