2014-03-04 101 views
0

我正在研究一個相當基本的豬拉丁文腳本,並且一旦執行GENERATE,就會遇到問題。在GENERATE之前,轉儲顯示數據看起來和我所期望的一樣。然而,一旦我做了GENERATE,結果是一個空集。基於豬拉丁參考手冊,這看起來是正確的。當腳本運行時,我不會收到任何錯誤(它報告成功)。如果在LOAD過程中對字段使用名稱或位置表示法,則會發生這種情況。豬生成空集結果

我的腳本:

B = LOAD 'data'; 
DUMP B; 
C = FOREACH B GENERATE (int)$2, (int)$3, (int)$4; 
DESCRIBE C; 
DUMP C; 

這是輸出:

(2014-01-26 08:14:21,672,1,0,1,55,...) 
(2014-01-26 08:14:23,654,1,1,0,55,...) 

C: {f1: int,f2: int,f3: int} 

(,,) 
(,,) 

爲什麼不從DUMP℃,收率(1,0,1),輸出(1,1,0 )?

回答

0

您的數據文件以逗號分隔。默認情況下,加載函數將解析製表符分隔的記錄。 您可以使用PigStorage裝載程序讀取字符分隔的記錄:

B = LOAD 'data' USING PigStorage(','); 
+0

就是這樣。謝謝! –