Apache pig 清管器需要储存/装载才能工作 我有猪脚本,只有当我在脚本的中间存储和加载变量时才有效。

Apache pig 清管器需要储存/装载才能工作 我有猪脚本,只有当我在脚本的中间存储和加载变量时才有效。,apache-pig,Apache Pig,我的试验表明,类似于以下的序列将在不同的事件发生后失败: 弗雷奇 明显的 团体 弗雷奇 贮藏 贮藏 但如果我存储并随后加载变量,则同样会成功,如下所示: 弗雷奇 明显的 贮藏 装载 团体 弗雷奇 贮藏 我的工作顺序是: foreach/join/foreach 组/foreach 加入/加入 此外,我不能简单地对store&rmf函数进行编码,因为Pig的代码优化将尝试跳过它认为无用的所有步骤(因为我存储了一个变量,然后将其加载到同一个变量名上) 以前有人见过这种奇怪的行为吗 编辑:很遗憾,

我的试验表明,类似于以下的序列将在不同的事件发生后失败:

  • 弗雷奇
  • 明显的
  • 团体
  • 弗雷奇
  • 贮藏
  • 贮藏
  • 但如果我存储并随后加载变量,则同样会成功,如下所示:

  • 弗雷奇
  • 明显的
  • 贮藏
  • 装载
  • 团体
  • 弗雷奇
  • 贮藏
  • 我的工作顺序是:

    • foreach/join/foreach

    • 组/foreach

    • 加入/加入

    此外,我不能简单地对store&rmf函数进行编码,因为Pig的代码优化将尝试跳过它认为无用的所有步骤(因为我存储了一个变量,然后将其加载到同一个变量名上)

    以前有人见过这种奇怪的行为吗


    编辑:很遗憾,我无法将代码粘贴到这里。

    我们已经看到了这种行为,正如您所说的-如果您没有存储值,pig将跳过它

    您可以编写UDF来获取元组和变量,并只返回元组。
    这样,它将处理变量,因为您正在对元组进行字符串处理。

    感谢您的反馈。你知道为什么pig会这样吗?我同意你的观点-pig发现他其实不需要运行这个,因为你没有存储结果。也许我会更深入地了解它