2016-12-24 47 views
1

我有一個與下面的內容名爲HDFS文件data_tuple_bag.txt:豬負載與模式給錯誤

10,{(1,2),(2,3)} 
11,{(4,5),(6,7)} 

我創建如下關係:

D = LOAD '/user/pig_demo/data_tuple_bag.txt' AS (f1:int,B:{T:(t1:int,t2:int)}); 

當我傾倒它給了我ACCESSING_NON_EXISTENT_FIELD 2次(s)以及FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2次(s)和空輸出。

我改變了關係:

D = LOAD '/user/pig_demo/data_tuple_bag.txt' USING PigStorage(',') AS (f1:int,B:{T:(t1:int,t2:int)}); 

現在只要給FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2時間(s)和輸出:

(10,) 
(11,) 

我有在它下面的另一個文件data_only_bag.txt:

{(1,2),(2,3)} 
{(4,5),(6,7)} 

該關係定義爲:

A = LOAD '/user/pig_demo/data_only_bag.txt' AS (B:{T:(t1:int,t2:int)}); 

它的工作原理。

現在我正在更新data_only_bag.txt如下:

10,{(1,2),(2,3)} 
11,{(4,5),(6,7)} 

而且關係是:

A = LOAD '/user/pig_demo/data_only_bag.txt' AS (f1:int,B:{T:(t1:int,t2:int)}); 

我越來越: (,) (,) 當我DUMP它給了我ACCESSING_NON_EXISTENT_FIELD 2次(s)以及FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2次(s)和一個空輸出。

現在我正在更新關係:

A = LOAD '/user/pig_demo/data_only_bag.txt' USING PigStorage(',') AS (f1:int,B:{T:(t1:int,t2:int)}); 

現在只要給FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2時間(s)和輸出:

(10,) 
(11,) 

以前一樣。

有人可以告訴我我在這裏做什麼錯?

在此先感謝。

回答

0

它沒有與提供的模式來解析輸入, 試試這個:

D = LOAD '/user/pig_demo/data_tuple_bag.txt' USING PigStorage(',') 
AS (f1:int, B: {T1: (t1:int, t2:int),T2: (t1:int, t2:int)}); 
+0

@AbhilashDK,恰好在Piglatin袋的difinition。它有效嗎? – 54l3d

+0

嗨。感謝你的回答。但是一個包可以是一個元組的集合。當我寫入B:{T:(t1:int,t2:int)},並且只有像(1,2),(2,3) (4,5),(6,7)這樣的數據可以工作。但是,只有當我在第一個f1中引入另一個字段時,我會收到上述錯誤。 –

+0

請更新您的問題,併爲每個案例添加一個典型的輸入文件 – 54l3d