在 Apache Pig 中为元组创建模式

Posted

技术标签:

【中文标题】在 Apache Pig 中为元组创建模式【英文标题】:Creating schema for Tuple in Apache Pig 【发布时间】:2015-04-05 05:59:22 【问题描述】:

如何在加载关系时为以下元组数据创建 Pig 架构?

]$ cat data

(3,8,9) (4,5,6)

(1,4,7) (3,7,5)

(2,5,8) (9,5,8)

我在本地模式下尝试了以下语句

A = LOAD '/home/cloudera/data' AS (t1:tuple(t1a:int,t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));

如果我转储数据,我期望得到结果

DUMP A;

((3,8,9),(4,5,6))

((1,4,7),(3,7,5))

((2,5,8),(9,5,8))

但我得到的是,

((3,8,9),)

((1,4,7),)

((2,5,8),)

我正在使用 Apache Pig 版本 0.11.0-cdh4.7.0

【问题讨论】:

【参考方案1】:

下一个作品:

A = load  '$input' using PigStorage(' ') AS (t1:tuple(t1a:int,t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));
describe A;
dump A;

转储:

((3,8,9),(4,5,6))
((1,4,7),(3,7,5))
((2,5,8),(9,5,8))

【讨论】:

以上是关于在 Apache Pig 中为元组创建模式的主要内容,如果未能解决你的问题,请参考以下文章

使用 pig,如何将混合格式的行解析为元组和一袋元组?

UDF 元组包导致错误“Long 不能转换为元组”

为啥在变量名后添加尾随逗号使其成为元组?

如何从记录转换为元组?

将键值元组包转换为 Apache Pig 中的映射

如何创建将二叉树转换为元组的函数?