Replace 在Apache清管器中实现上部、修剪和更换

Replace 在Apache清管器中实现上部、修剪和更换,replace,apache-pig,trim,uppercase,Replace,Apache Pig,Trim,Uppercase,我对猪的环境很陌生。我尝试用两种方法实现我的pig脚本文件 一, 我得到一个错误: 2016-09-29 02:45:40826 INFO org.apache.pig.Main:apache pig版本 0.10.0-cdh4.2.1(rexported)编译于2013年4月22日,12:04:54 2016-09-29 02:45:40827 INFO org.apache.pig.Main:将错误消息记录到: /主页/培训/培训材料/分析师/练习/pig_etl/pig_147513154

我对猪的环境很陌生。我尝试用两种方法实现我的pig脚本文件

一,

我得到一个错误:

2016-09-29 02:45:40826 INFO org.apache.pig.Main:apache pig版本 0.10.0-cdh4.2.1(rexported)编译于2013年4月22日,12:04:54 2016-09-29 02:45:40827 INFO org.apache.pig.Main:将错误消息记录到: /主页/培训/培训材料/分析师/练习/pig_etl/pig_1475131540824.log 2016-09-29 02:45:42371错误org.apache.pig.tools.grunt.grunt:ERROR 1025:无效字段 投影。架构中不存在投影字段[关键字]: 活动id:chararray,日期:chararray,时间:chararray,org.apache.pig.builtin.upper\u关键字\u 12:chararray,显示\u站点:chararray,位置:chararray,点击:int,cpc:int。 日志文件中的详细信息:/home/hduser/pig_etl/pig_1475131540824.log

但是,当我将鞋面、修剪和更换整合在一个语句中时,它就起作用了:

二,


因此,我只想有人向我解释为什么I.method不起作用,以及错误消息是什么。

当您在
val1
中应用
TRIM
时,
val
中没有所谓的“
关键字

注意:当您应用任何函数时,请使用别名,以避免出现错误

或者,在创建新关系之前,最好使用
描述
,以便让您清楚地了解模式

解决办法是:

data = LOAD 'sample2.txt' USING PigStorage(',') as(campaign_id:chararray,date:chararray,time:chararray,display_site:chararray,placement:chararray,was_clicked:int,cpc:int,keyword:chararray);

distinct_data = DISTINCT data;

val = foreach distinct_data generate campaign_id,date,time,UPPER(keyword) as keyword,display_site,placement,was_clicked,cpc;

val1 = foreach val generate campaign_id,date,time,TRIM(keyword) as keyword,display_site,placement,was_clicked,cpc;

val2 = foreach val1 generate campaign_id,REPLACE(date, '-', '/') as date,time,keyword,display_site,placement,was_clicked,cpc;

dump val2;

谢谢@ankur和伟大的建议,从现在起我一定会用它来描述。
data = LOAD 'sample2.txt' USING PigStorage(',') as(campaign_id:chararray,date:chararray,time:chararray,display_site:chararray,placement:chararray,was_clicked:int,cpc:int,keyword:chararray);

distinct_data = DISTINCT data;

val = foreach distinct_data generate campaign_id,REPLACE(date, '-', '/'),time,TRIM(UPPER(keyword)),display_site,placement,was_clicked,cpc;
dump val;
data = LOAD 'sample2.txt' USING PigStorage(',') as(campaign_id:chararray,date:chararray,time:chararray,display_site:chararray,placement:chararray,was_clicked:int,cpc:int,keyword:chararray);

distinct_data = DISTINCT data;

val = foreach distinct_data generate campaign_id,date,time,UPPER(keyword) as keyword,display_site,placement,was_clicked,cpc;

val1 = foreach val generate campaign_id,date,time,TRIM(keyword) as keyword,display_site,placement,was_clicked,cpc;

val2 = foreach val1 generate campaign_id,REPLACE(date, '-', '/') as date,time,keyword,display_site,placement,was_clicked,cpc;

dump val2;