2017-10-04 108 views
0

我有下面的單個原始文件,並且需要將文件拆分成不同的關係。將數據提取到PIG中的不同關係中

如果線的起點爲0,完整的行應轉到關係「標題」

如果行開頭1,完整的行應轉到關係「禁止」

如果行開頭2,完整的行應轉到關係「子」

如果符合3開始,完整的行應轉到關係「項目」

如果符合4開始,完整的行應轉到關係「稅」

0ALH 012012050104.00.00356.0012.06001 

1980377362 HAW R 120010000IRN+000016323SABRINA D. ORTIZ           PO BOX 1764                                                KAILUA KONA    HI967451764September 2009  03.4June 2008   06.0E 00 

2980377362 8089363822 HAW 120010000SABRINA D. ORTIZ           75-1027 HENRY ST                                              KAILUA KONA    HI967403154September 2009  03.4June 2008   06.0EN00 

2980377362 8089375559 HAW 120010000SABRINA D. ORTIZ           75-1027 HENRY ST                                              KAILUA KONA    HI967403154September 2009  03.4June 2008   06.0EN00 

3980377362 8089363822    911FEEO  O   SNOTAX1001+000000066201205029-1-1 Service Fee                              0000004950533060000002163C 

3980377362 8089363822 GSMUSELASCPKG R  R   S   00000000020120502Custom Call Package                             000000495053163   

4980377362 8089363822 MSGFTM2AMM2ABUNR  L+000003000U 105  +04160000+000000125 0000000000000000495053186 

4980377362 8089363822 MSGFTM2AMM2ABUNR  L+000003000U 131  +00084600+000000003 0000000000000000495053186 

4980377362 8089363822 MSGFTM2AMM2ABUNR  L+000003000U 133  +04146600+000000124 0000000000000000495053186 

請幫我用豬腳做這個嗎?

+0

顯示你的努力 – syadav

+0

我一直沒能取得任何進展,因此請求幫助 –

+0

[這](https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#SPLIT )簡單的帖子與例子可以是有用的 – syadav

回答

1

將數據加載到單個字段中。每行獲取行的第一個字符,並將其與您正在查找的值進行比較,並使用split將其存儲到不同的關係中。

A = LOAD '/path/file.txt' USING TextLoader() as (line:chararray); 
SPLIT A INTO header IF SUBSTRING(A.line,0,1) == '0', 
      ban IF SUBSTRING(A.line,0,1) == '1', 
      sub IF SUBSTRING(A.line,0,1) == '2', 
      item IF SUBSTRING(A.line,0,1) == '3', 
      tax IF SUBSTRING(A.line,0,1) == '4'; 
DUMP header; 
DUMP ban; 
DUMP sub; 
DUMP item; 
DUMP tax;