我使用一个复杂的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专栏起的名字?
谢谢。
1条答案
按热度按时间ifsvaxew1#
indeep你可以强制使用as-month标签,但它不能解释为什么1美元不起作用:s
我建议你使用
EXTRACT
使用适当的正则表达式并尝试DESCRIBE joined_data;
以及DESCRIBE old_data;
为了查看标签过程:)