无法拆分字词之间包含空格和制表符的chararray字段。使用Apache Pig帮助命令?

时间:2017-11-02 12:42:32

标签: apache-pig

我的Sample.txt文件

  • 2017-01-01 10:21:59星期四-39 3接一辆公共汽车 - 两个小时的旅行
  • 2017-02-01 12:45:19 FRIDAY -55 8接一趟火车 - 旅行一小时
  • 2017-03-01 11:35:49 SUNDAY -55 8接一趟火车 - 旅行一小时 。

  • 当我执行以下操作时,它无法按预期工作。

  • A = LOAD'Sample.txt'使用PigStorage()为(line:chararray);
  • B = foreach A生成STRSPLIT(line,'',3);
  • C = foreach B产生$ 2;

  • 注意: - C的转储将给出以下结果。

  • 星期四-39 3坐公共汽车 - 旅行两个小时
  • 星期五-55 8接一趟火车 - 旅行一小时
  • SUNDAY -55 8接一趟火车 - 旅行一小时

  • 如果$ 0与'.bus匹配',则将C拆分为buslog;如果$ 0匹配'.train,则列为火车日志。'; (这不符合命令。它没有正确生成日志。)

  • 要求:在上面的结果中,我想将火车和公共汽车分成两个关系,但它并没有按预期发生。

1 个答案:

答案 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.*');