Pig Load with Schema 给出错误
Posted
技术标签:
【中文标题】Pig Load with Schema 给出错误【英文标题】:Pig Load with Schema giving error 【发布时间】:2016-12-24 16:26:17 【问题描述】:我在 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】:使用提供的架构解析输入失败, 试试这个:
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));
【讨论】:
@AbhilashDK,这正是 Piglatin 中 Bag 的定义。有用吗? 嗨。感谢你的回答。但是一个包可以是一个元组的集合对。当我写 B:T:(t1:int,t2:int) 并且只有像 (1,2),(2,3) (4,5),(6,7) 这样的数据时,它可以工作。但只有当我在第一个 f1 中引入另一个字段时,我才会收到上述错误。 请更新您的问题,并为每个案例添加一个典型的输入文件以上是关于Pig Load with Schema 给出错误的主要内容,如果未能解决你的问题,请参考以下文章
LOAD DATA LOCAL INFILE 给出错误 The used command is not allowed with this MySQL version