使用Apache Pig自定义记录中的字段所需的命令

时间:2017-11-01 04:41:31

标签: apache-pig

Sample.txt文件

2017-01-01 15:35:18 I had heavy snacks
2017-02-01 12:45:19 I am feeling hungry
2017-03-01 10:25:19 I completed my work that is assigned
  • 要求:我需要将日期作为第一个字段,时间应为第二个字段,将整个剩余文本作为第三个字段。 (注意:这是一个以空格分隔的文件。)。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

将文件加载到单个字段中,然后使用STRSPLIT

A = LOAD '/path/sample.txt' USING TextLoader() AS (line:chararray);
B = FOREACH A GENERATE STRSPLIT(line,' ',3); --Note: 3 indicates the field line to be split into 3 parts based on the delimiter space.
DUMP B;

答案 1 :(得分:0)

尝试以下代码

A = load 'data' using PigStorage ();
B = foreach A generate STRSPLIT($0,' ' ,3);
C = foreach B generate flatten($0);
D = foreach C generate $2,$1,$0;