Pig中的ResourceSchema和Schema有什么区别?
已经提供了Schema类,为什么不费心地添加另一个名为ResourceSchema的Schema-akin类(几乎类似于Schema API,它需要设置其ResourceFieldSchema的名称和类型,它也可以具有子ResourceSchema)用于存储功能?
最佳答案
API文档备份@zsxwing的评论:
Schema
-Schema类为关系运算符封装了模式的概念。模式是描述关系运算符输出的列的列表。关系中的每一列都表示为FieldSchema,这是Schema内部的静态类。根据定义,列具有别名,类型和可能的模式(如果列是袋或元组)。
此外,架构中的每一列都有一个唯一的自动生成的名称,该名称用于跟踪一系列语句中的列沿袭。列的沿袭使用前任列到生成前任列的运算符的映射进行跟踪。
先前的列是生成正在考虑的列所需的列。同样,将生成前列的操作符反向查找到前列。
ResourceSchema
-用于与加载和存储功能进行通信的模式的表示。这与架构(架构的内部Pig表示)分开。 因此,我从API文档中可以看到的主要区别之一是Schema能够跟踪构建它所需的输入列,而ResourceSchema只是字段名称,类型(和可选子模式)的模式定义。
关于hadoop - pig 中的资源模式和模式之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416010/