2017-03-01 11:35:49 SUNDAY -55 8接一趟火车 - 旅行一小时 。
当我执行以下操作时,它无法按预期工作。
C = foreach B产生$ 2;
注意: - C的转储将给出以下结果。
SUNDAY -55 8接一趟火车 - 旅行一小时
如果$ 0与'.bus匹配',则将C拆分为buslog;如果$ 0匹配'.train,则列为火车日志。'; (这不符合命令。它没有正确生成日志。)
要求:在上面的结果中,我想将火车和公共汽车分成两个关系,但它并没有按预期发生。
答案 0 :(得分:0)
尝试以下代码
A = load 'Data' USING PigStorage() as (line:chararray);
B = foreach A generate STRSPLIT(line, ' ', 3);
C = foreach B generate flatten($0);
bus = filter C by ($2 matches '.*bus.*');
train = filter C by ($2 matches '.*train.*');