0
我有一个被定义为Chararray的列(名为Product),它有三个值:OT,AT和HP。我想创建一个新的列和整数变换此值:Apache PIG - 基于另一个值创建一个新列
- OT = 1
- AT = 2
- HP = 3
对于我创建一个foreach statment:
REGISTER '/usr/lib/pig/piggybank.jar';
File = load '/user/cloudera/file.csv'
USING org.apache.pig.piggybank.storage.CSVExcelStorage(',')
as (ID:Long,
Chain:Int,
Dept:Int,
Product_Measure:Chararray,
Price:Double);
Values = FOREACH File Generate
ID,
Chain,
Dept,
((Chararray)Product_Measure=='OT'?'1':(Chararray)Product_Measure=='AT'?'2':(Chararray)Product_Measure=='HP'?'3':'0') as Product_Measure,
(Price<0.1?0:Price) as Price;
Filter_Values = FILTER Values BY Price > 0;
DUMP Filter_Values;
如果删除第三行它工作正常,所以我认为问题是当我尝试转换int的chararray。
任何人都可以帮助我吗?
谢谢!
嗨ANKUR, 我”仍然得到错误:(我已经更新了我的代码 – SaCvP