【问题标题】:In PIG how to project disambiguited field present in bag?在 PIG 中如何投影包中存在的明确字段?
【发布时间】:2015-02-18 07:47:42
【问题描述】:

我有这样的事情:

  joined = JOIN A BY F1, B BY F1 ;
  joinOutput = FOREACH joined GENERATE A::f3 AS f3, A::f4 AS f4, B::f5 AS f5 ;
  grouped = GROUP joinOutput BY f3 ;
  countOutput = FOREACH grouped FLATTEN(joinOutput) , count(f5) as COUNT ;

如果我执行 """ DESCRIBE countOutput """ 那么我会得到以下信息:

 countOutput = { joinOutput::f3 :chararray, joinOutput::f4 :int, COUNT :int }

现在,如果我尝试针对“countOutput”(即 countOutput.f3)引用 f3,我会收到错误消息,提示字段投影无效。

所以我的问题是如何针对 countOutput 投影字段 f3。

我还没有尝试过,如果这是正确的,但我可以想到以下方法 -

 countOutput.joinOutput::f3    

不确定这是否正确。

感谢任何帮助。

【问题讨论】:

    标签: hadoop amazon-web-services apache-pig emr


    【解决方案1】:

    好的,尝试了几件事后找到了解决方案。我发现你可以在 FLATTEN 时明确指定模式。

    所以这个特定的步骤可以重写如下:

     countOutput = FOREACH grouped FLATTEN(joinOutput) AS ( f3 :chararray, f4: int) , count(f5) as COUNT ;
    

    现在我可以直接引用扁平字段的外部关系。 如果有人遇到同样的问题,希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      相关资源
      最近更新 更多