gpt4 book ai didi

hadoop - 有人可以解释 pig 身上的这个奇怪错误吗

转载 作者:可可西里 更新时间:2023-11-01 15:13:24 25 4
gpt4 key购买 nike

我在 pig 中使用宏,但它抛出一个错误提示:未定义的别名“result_1”。

我正在使用的宏:

 define macro_result (source , metric_name , metric_value) returns  result_metric 
{
result_1= foreach $source generate
timestamp,
member_sk as id,
'$metric_name' as minor_metric,
'Lts_seo' as major_metric,
$metric_value as value;
$result_metric = result_1;

};

我将宏称为:

page_views_to_jserp_from_job_detail    = macro_result(metadata_final,'PAGE_VIEWS_TO_JSERP_FROM_JOB_DETAIL', PV_to_jserp_from_job_detail  );

我将宏更改为此,错误似乎已解决(更改为粗体):

 define macro_result (source , metric_name , metric_value) returns  result_metric 
{
***$result_metric***= foreach $source generate
timestamp,
member_sk as id,
'$metric_name' as minor_metric,
'Lts_seo' as major_metric,
$metric_value as value;
***-- $result_metric = result_1;***

};

最初导致错误的原因是什么?为什么我不能将 result_1 用作中间步骤并将其存储在宏内的 result_metric 中?

最佳答案

我们不能将一个别名直接分配给另一个。

我们可以从一个别名投影所需的字段并返回相同的字段。

对于共享的用例:

$result_metric = FOREACH result_1 GENERATE *;

除非这两个别名之间的投影字段发生变化,否则不需要此步骤。

关于hadoop - 有人可以解释 pig 身上的这个奇怪错误吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com