hadoop - pig 中的资源模式和模式之间的区别

标签 hadoop schema apache-pig

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/

    相关文章:

    hadoop - 复制自本地 : unexpected URISyntaxException

    xml - XML Schema 和 DTD 有什么区别?

    mysql - 从不同的 Schemas MySQL 调用过程

    mysql - 什么是好的 MySQL 数据库模式工具?

    hadoop - 将 PIg 的 MultiStorage 用于嵌套结构

    hadoop - Pig 中带有 AvroStorage 的逗号分隔列表

    java - 无法在 Pig 中处理 Xml

    hadoop - hadoop dfs -ls给出了本地文件系统中不存在的文件夹列表

    csv - 在 Python CSV 模块中将分隔符更改为 CTRL+A

    java - 收集框架、大数据和最佳实践