我正在使用复杂的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选择我给月份列的名字?
感谢。
答案 0 :(得分:0)
Indeep你可以用AS月强制标签,但它并不能解释为什么1美元不起作用:S
我建议您将EXTRACT
与相应的正则表达式一起使用,然后尝试DESCRIBE joined_data;
和DESCRIBE old_data;
以查看标记过程:)