0

猪中的 ResourceSchema 和 Schema 有什么区别?已经提供了Schema类,为什么pig还要再添加一个类似Schema的类ResourceSchema(和Schema API差不多,需要设置它的ResourceFieldSchema的名称和类型,还可以有子ResourceSchema)来存储功能呢?

4

1 回答 1

0

API Docs 备份 @zsxwing 的评论:

  • Schema- Schema 类为关系运算符封装了模式的概念。模式是描述关系运算符输出的列列表。

    关系中的每一列都表示为一个 FieldSchema,它是 Schema 中的一个静态类。根据定义,列具有别名、类型和可能的模式(如果列是包或元组)。

    此外,模式中的每一列都有一个唯一的自动生成的名称,用于在一系列语句中跟踪列的沿袭。使用先行列到生成先行列的运算符的映射来跟踪列的沿袭。

    前置列是生成所考虑的列所需的列。类似地,维持生成前驱列到前驱列的运算符的反向查找。

  • ResourceSchema- 用于与加载和存储功能通信的模式的表示。这与 Schema 不同,Schema 是模式的内部 Pig 表示。

因此,我可以从 API 文档中看到的主要区别之一是 Schema 能够跟踪构建它所需的输入列,其中 ResourceSchema 只是字段名称、类型(和可选的子模式)的模式定义

于 2013-07-03T10:46:53.197 回答