我有猪宏
define chop_massive (my, maxev) returns grouped, massive {
gr = foreach (group $my by id) generate group as id, $my;
split gr into
massive if COUNT($my) > $maxev,
grouped otherwise;
$grouped = grouped;
$massive = foreach massive generate id, COUNT($my) as $my;
};
我的问题是传递maxev
参数。
当我使用常量文字(例如100L
)时,一切都很好。
但是,我想在命令行上使用$MAX_EVENTS
指定-param
。
我试过
A, massive = chop_massive(A, $MAX_EVENTS);
得到了
mismatched input '100L' expecting set null
我试过
A, massive = chop_massive(A, ($MAX_EVENTS));
得到了
mismatched input '(' expecting set null
我试过
A, massive = chop_massive(A, '$MAX_EVENTS');
得到了
Macro doesn't support user defined schema that contains name that conflicts with alias name: A
我试过
massive if COUNT($my) > $MAX_EVENTS,
在宏内部并获得
Macro inline failed for macro 'chop_massive'. Reason: Undefined parameter : MAX_EVENTS
(这个错误至少是明确而合理的)。
那我该怎么办?
答案 0 :(得分:0)
虽然我没有在任何地方看到它,但如果不支持表达式作为宏参数,我也不会感到惊讶。为什么不将$EVENTS_PER_DAY
和$DAYS
作为参数传递给宏(三个参数而不是两个)?