gpt4 book ai didi

hadoop - 从存储在 .avsc 文件中的表架构创建配置单元表

转载 作者:可可西里 更新时间:2023-11-01 14:48:32 26 4
gpt4 key购买 nike

我有一个 hive 表模式存储在一个 hdfs 文件 schema.avsc 中。我想创建一个具有相同模式的配置单元表,并希望从数据存储在 HDFS 文件系统中的另一个 hdfs 路径转储数据。

1:如何创建表?2 : 如何将存储在 hdfs 文件中的数据转储到创建的表中?

最佳答案

How can i create a table ?

AvroSerDe 上的 Apache Hive 文档显示了基于存储在文件中的 Avro 模式创建表的语法。为方便起见,我将在此处重复其中一个示例:

CREATE TABLE kst
PARTITIONED BY (ds string)
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'
TBLPROPERTIES (
'avro.schema.url'='http://schema_provider/kst.avsc');

此示例从 Web 服务器中提取架构文件。该文档还显示了其他选项,例如根据您的特定需求从本地文件中提取。

我建议阅读整个 AvroSerDe 文档页面。那里有很多关于充分利用 Hive 和 Avro 的有用信息。

How can i dump a data stored in hdfs file into created table ?

您可以定义一个引用现有 HDFS 文件的外部表。 External Tables 的文档页面显示语法。重复一个例子:

CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User',
country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
STORED AS TEXTFILE
LOCATION '<hdfs_location>';

定义外部表后,您可以使用从外部表读取并写入 Avro 表的 INSERT-SELECT 查询。关于 Inserting data into Hive Tables from queries 的文档描述了 INSERT-SELECT 语法。例如:

FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country)
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip, pvs.cnt

关于hadoop - 从存储在 .avsc 文件中的表架构创建配置单元表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41796213/

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