我是大数据新手,目前正在学习 Hive。我理解 Hive 中的 InputFormat 和 OutputFormat 的概念是 SerDe 的一部分。我还了解到“存储为”用于以特定格式存储文件,就像 InputFormat 一样。
但我不明白使用“InputFormat、OutputFormat”和“Stored as”之间的显着区别是什么。
任何帮助表示赞赏。
Hive 有很多存储数据的选项。您可以使用external存储,Hive 只会包装来自其他位置的一些数据,或者您可以从头开始创建独立表蜂巢仓库。输入和输出格式允许您指定这两种类型的表的原始数据结构或数据的物理存储方式。在客户端,您将继续使用 sql 处理表,但在低级别上,它可能是文本文件、序列文件、hbase 表或其他一些数据结构。
输入格式和输出格式- 允许您描述原始数据结构,以便 Hive 可以将其正确映射到表视图
SerDe- 表示执行数据从表视图到低级输入输出格式结构的实际转换的类,反之亦然
一般来说你的流程会是这样的:HDFS 文件 --> 输入文件格式 --> 反序列化器 --> 行对象 --> 序列化器 --> 输出文件格式 --> HDFS 文件
存储为- 指定这样的存储格式,其中包括 Hive 中新表的输入和输出格式
这些属性确实可以影响性能、总体大小、数据模式演化支持或启用 ACID 等功能。您可以按照本文中描述的步骤来查看底层工作情况并获取有关最常用格式的一些一般信息 -https://oyermolenko.blog/2017/02/16/structuring-hadoop-data-through-hive-and-sql
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)