带有架构的Pig加载错误

时间:2016-12-24 16:26:17

标签: apache-pig bigdata

我在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)});

当我进行DUMP时,它给我ACCESSING_NON_EXISTENT_FIELD 2次(以及FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2次)和空输出。

我将关系更改为:

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次,输出为:

(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次(以及FIELD_DISCARDED_TYPE_CONVERSION_FAILED 2次)和空输出。

现在我将关系更新为:

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次,输出为:

(10,)
(11,)

与以前相同。

有谁能告诉我,我在这里做错了什么?

先谢谢。

1 个答案:

答案 0 :(得分: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)});