Pig SUBSTRING函数不生成列

时间:2014-07-10 22:53:04

标签: foreach substring apache-pig

我正在使用复杂的foreach语句来生成我的数据。 这是一个示例行:

(2013-07-01)

以下是我的代码:

    joined_data = foreach old_data {

       date = old_data::date;
       month = SUBSTRING(date, 5, 7);

generate date, month;
};

当我继续使用该表时,我收到以下错误:

<file script.pig, line 24, column 66> Invalid field projection. Projected field [month] does not exist in schema: old_data::date:chararray,:chararray.

为什么月份没有名字? 我清楚地命名了它。

当我写:

   joined_data = foreach data {

       date = old_data::date;
       month = SUBSTRING(date, 5, 7);

  generate date, $1;
  };

代码永远不会运行(它无法完成reduce阶段)。

知道为什么会这样,以及我如何确保Pig选择我给月份列的名字?

感谢。

1 个答案:

答案 0 :(得分:0)

Indeep你可以用AS月强制标签,但它并不能解释为什么1美元不起作用:S

我建议您将EXTRACT与相应的正则表达式一起使用,然后尝试DESCRIBE joined_data;DESCRIBE old_data;以查看标记过程:)