2015-05-19 28 views
0

我有一个文字输入'|'分离器猪场内的分割字符

0.0000|25000|     |BM|BM901002500109999998|SZ 

我使用PigStorage

A = LOAD '/user/hue/data.txt' using PigStorage('|'); 

现在我需要根据自己的立场领域BM901002500109999998分成不同领域划分,说0-2 = BM - Field 1和喜欢聪明。 因此,在这一步之后,我应该得到BM,90100,2500,10,9999998. Pig脚本中是否有任何方法可以实现此目的,否则我计划编写一个UDF并将分隔符放在所需的位置。

谢谢。

+1

你找子? http://pig.apache.org/docs/r0.8.1/api/org/apache/pig/builtin/SUBSTRING.html – kanchirk

回答

3

您正在寻找SUBSTRING

A = LOAD '/user/hue/data.txt' using PigStorage('|'); 
B = FOREACH A GENERATE SUBSTRING($4,0,2) AS FIELD_1, SUBSTRING($4,2,7) AS FIELD_2, SUBSTRING($4,7,11) AS FIELD_3, SUBSTRING($4,11,13) AS FIELD_4, SUBSTRING($4,13,20) AS FIELD_5; 

输出将是:

dump B; 
(BM,90100,2500,10,9999998) 

您可以找到有关该功能的详细信息here.

+0

感谢Balduz,这正是我一直在寻找的。 – Abhi