Apache pig 传递清管器宏参数
我有一只猪Apache pig 传递清管器宏参数,apache-pig,Apache Pig,我有一只猪 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 mass
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
)时,一切正常。
但是,我想使用命令行上使用-param
指定的$MAX_事件
我试过了
A, massive = chop_massive(A, $MAX_EVENTS);
A, massive = chop_massive(A, ($MAX_EVENTS));
A, massive = chop_massive(A, '$MAX_EVENTS');
massive if COUNT($my) > $MAX_EVENTS,
得到
mismatched input '100L' expecting set null
mismatched input '(' expecting set null
Macro doesn't support user defined schema that contains name that conflicts with alias name: A
我试过了
A, massive = chop_massive(A, $MAX_EVENTS);
A, massive = chop_massive(A, ($MAX_EVENTS));
A, massive = chop_massive(A, '$MAX_EVENTS');
massive if COUNT($my) > $MAX_EVENTS,
得到
mismatched input '100L' expecting set null
mismatched input '(' expecting set null
Macro doesn't support user defined schema that contains name that conflicts with alias name: A
我试过了
A, massive = chop_massive(A, $MAX_EVENTS);
A, massive = chop_massive(A, ($MAX_EVENTS));
A, massive = chop_massive(A, '$MAX_EVENTS');
massive if COUNT($my) > $MAX_EVENTS,
得到
mismatched input '100L' expecting set null
mismatched input '(' expecting set null
Macro doesn't support user defined schema that contains name that conflicts with alias name: A
我试过了
A, massive = chop_massive(A, $MAX_EVENTS);
A, massive = chop_massive(A, ($MAX_EVENTS));
A, massive = chop_massive(A, '$MAX_EVENTS');
massive if COUNT($my) > $MAX_EVENTS,
在宏中,得到了
Macro inline failed for macro 'chop_massive'. Reason: Undefined parameter : MAX_EVENTS
(这个错误至少是清楚和合理的)
那么我该怎么办呢?虽然我在任何地方都没有看到它的文档,但如果表达式不支持作为宏参数,我也不会感到惊讶。为什么不将$EVENTS\u PER_DAY
和$DAYS
作为参数传递给宏(三个参数而不是两个参数)?我相信您刚才得到的错误与参数替换无关——这是因为您在宏返回和脚本的其他地方都使用了A
作为别名。试着把它换成别的东西。