在Hive中'InputFormat,OutputFormat'和'Stored as'之间有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Hive中'InputFormat,OutputFormat'和'Stored as'之间有什么区别?相关的知识,希望对你有一定的参考价值。

我是Bigdata的新手,目前正在学习Hive。作为SerDe的一部分,我理解Hive中的InputFormat和OutputFormat的概念。我也理解'Stored as'用于以特定格式存储文件,就像InputFormat一样。但我不明白使用'InputFormat,OutputFormat'和'Stored as'之间有什么重大区别。

任何帮助表示赞赏。

答案

Hive有很多关于如何存储数据的选项。您可以使用外部存储,其中Hive只是从其他地方包装一些数据,或者您可以从hive仓库中的start开始创建独立表。输入和输出格式允许您指定这两种类型的表的原始数据结构或如何物理存储数据。从客户端开始,您将使用sql继续使用表,但在低级别,它可以是文本文件或序列文件或hbase表或其他一些数据结构。

InputFormat和OutputFormat - 允许您描述原始数据结构,以便Hive可以正确地将其映射到表视图

SerDe - 表示从表视图到低级输入输出格式结构执行实际数据转换的类,并且相反

通常你的过程是这样的:HDFS文件 - > InputFileFormat - >反序列化器 - >行对象 - >串行器 - > OutputFileFormat - > HDFS文件

存储为 - 指定此类存储格式,其中包括Hive中新表的输入和输出格式

这些属性可以真正影响性能,整体大小,数据模式演变支持或启用ACID等功能。您可以按照本文中描述的步骤查看事情是否在低级别工作,并获取有关最常用格式的一般信息 - https://oyermolenko.blog/2017/02/16/structuring-hadoop-data-through-hive-and-sql

以上是关于在Hive中'InputFormat,OutputFormat'和'Stored as'之间有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

Hive随记

Hive中Map任务和Reduce任务数量计算原理

Hive中Map任务和Reduce任务数量计算原理

hive上执行查询语句时无结果反馈,是啥原因?

hive中的文件格式的简介

Mysql基础第十一天,用通配符进行过滤