gpt4 book ai didi

hadoop - 基于文件结构的 Hive 建表

转载 作者:可可西里 更新时间:2023-11-01 15:49:36 25 4
gpt4 key购买 nike

我有一个疑问,HIVE 中是否有任何方法可以在加载到 Hive 仓库或外部表期间创建表。

据我所知,hive 基于读取模式。所以表结构必须与文件结构同步。但是如果文件很大并且我们不知道它的结构,例如列和它们的数据类型。

比起如何将这些文件加载​​到配置单元表。

简而言之,如何在不知道其架构结构的情况下将文件从 HDFS 加载到 HIVE 表。

Hive 新手,理解有误请见谅。

谢谢

最佳答案

通过使用 sqoop,您可以在导入数据的同时创建配置单元表

请引用this导入数据时创建 Hive 表的链接

(或)

如果您导入了 AVRO 格式的数据,那么您可以使用以下命令生成 avro 模式/usr/bin/Avro/avro-tools-*.jar 然后在 hive 中创建表时使用生成的 avro 模式,然后 hive 使用该模式并从 HDFS 读取数据。

请引用this从 avro 数据文件中提取模式的链接

(或)

当使用 sqoop --as-avrodatefile 导入数据时,sqoop 会创建包含模式的 .avsc 文件,因此我们可以使用此 .avsc 文件创建表。

CREATE EXTERNAL TABLE avro_tbl
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED as INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '<hdfs-location>'
TBLPROPERTIES ('avro.schema.url'='<schema-file>');

(或)

通过使用 NiFi 导入数据 NiFi 使用 ExtractAvroMetadata 处理器提取 avro 格式的数据,我们可以提取 avro 模式并存储到 HDFS 中,并使用此 avro 模式创建表。

如果你想创建 ORC 格式的表,然后使用 ConvertAvroToOrc 处理器将 hive.ddl 属性添加到流文件,因为我们可以执行 ddl 语句来创建 orc 表在 hive 中。

关于hadoop - 基于文件结构的 Hive 建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51221712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com