sas - SAS 网格启用
问题描述
我必须提取大量数据,并且我正在尝试网格化以使其运行得更快。不幸的是,我不是 SAS 编码员,所以我正在尝试修改现有代码。我在日志的 waitfor all部分中不断收到“%END 没有匹配的 %DO 语句”错误。我什至不确定这是否会起作用。
有人有网格经验可以帮助我吗?
%let _sdtm=%sysfunc(datetime());
%macro splitmonths(begmonth=,endmonth=);
%let rc=%sysfunc(grdsvc_enable(_all_,server=SASApp));
options autosignon;
%do imth=&begmonth %to &endmonth;
signon t&imth;
%syslput imth=&imth/remote=t&imth;
rsubmit t&imth wait=no;
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_VW_HOUPOSSW_FACT_&imth AS
SELECT t1.outletfamily,
t1.ppmonth,
t1.itemnumber,
/* Dollars */
(SUM(t1.totalvalue)) FORMAT=DOLLAR20. AS Dollars
FROM HOUPWP7.vw_houpossw_fact t1
WHERE t1.ppmonth = &imth;
GROUP BY t1.outletfamily,
t1.ppmonth,
t1.itemnumber;
QUIT;
endrsubmit;
%end
waitfor _all_
%do imth=&begmonth %to &endmonth;
t&imth
%end;
;
signoff _all_;
data newdata;
set
%do imth=&begmonth %to &endmonth;
newdata&imth
%end;
;
run;
proc datasets lib=work;
%do imth=&begmonth %to &endmonth;
delete newdata&imth;
%end
quit;
%mend splitmonths
%splitmonths (begmonth=541, endmonth=588)
%let _edtm=%sysfunc(datetime());
%let _runtm=%sysfunc(putn(&_edtm - &_sdtm, 12.4));
%put It took &_runtm second to run the program;enter code here
解决方案
%end
尝试在语句开始之前添加分号来结束宏waitfor
语句。
%end;
waitfor _all_
推荐阅读
- javascript - 迭代创建json层
- python - 如何更改人体图像的肤色?
- javascript - 未捕获的 TypeError:fs.readFileSync 不是浏览器控制台中的函数错误
- c# - Worksheet.SelectionChange 一段时间后丢失
- c# - 命名空间“...”中的元素“...”具有无效的子元素,即使架构中存在子元素
- python - 从 Python 中的列中删除多个唯一值
- reinforcement-learning - 具有强化学习的变压器
- node.js - 平均堆栈 multer 上传“消息”:“无法读取未定义的属性‘文件名’”
- python-3.x - 列表理解中的类没有属性
- while-loop - 虽然关于八度的声明