pig子串函数不生成列

62lalag4  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(266)

我使用一个复杂的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.

为什么month没有名字?我很清楚它的名字。
当我写的时候:

joined_data = foreach data {

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

  generate date, $1;
  };

代码从未完成运行(它无法完成reduce阶段)。
你知道为什么会这样吗?我怎样才能确保pig记住我给month专栏起的名字?
谢谢。

ifsvaxew

ifsvaxew1#

indeep你可以强制使用as-month标签,但它不能解释为什么1美元不起作用:s
我建议你使用 EXTRACT 使用适当的正则表达式并尝试 DESCRIBE joined_data; 以及 DESCRIBE old_data; 为了查看标签过程:)

相关问题