猪需要存储/负载才能工作

时间:2015-05-06 09:49:02

标签: apache-pig

我有Pig脚本,只有在我在脚本中间存储和加载变量时才有效。

我的试验表明,在DISTINCT之后,如下所示的序列会失败:

  1. FOREACH
  2. DISTINCT
  3. GROUP
  4. FOREACH
  5. STORE
  6. STORE
  7. 但是如果我存储然后随后加载变量,那么同样会成功:

    1. FOREACH
    2. DISTINCT
    3. STORE
    4. LOAD
    5. GROUP
    6. FOREACH
    7. STORE
    8. 我的工作顺序是:

      • foreach / join / foreach

      • group / foreach

      • 加入/预告

      此外,我不能简单地对商店和商店进行编码。 rmf函数作为Pig的代码优化将尝试跳过它认为无用的所有步骤(因为我存储一个变量并在之后的同一个变量名称上加载它)。

      之前有没有人见过这种奇怪的行为?

      编辑:不幸的是我不能在这里粘贴代码。

1 个答案:

答案 0 :(得分:0)

我们已经看到过这种行为,就像你说的那样 - 如果你没有存储这些值,猪会跳过它

您可以编写获取元组和变量的UDF,并仅返回元组。 这样,它将处理变量,因为你是字符串元组。