HCatalog教程

HCatalog 创建表

本章解释了如何创建表以及如何向其中插入数据。在 HCatalog 中创建表的约定与使用 Hive 创建表非常相似。

创建表语句

Create Table 是用于使用 HCatalog 在 Hive Metastore 中创建表的语句。其语法和示例如下-

语法

CREATE [TEMPORARY] [EXTERNAL] TABLE [if NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

示例

假设您需要使用 CREATE TABLE 语句创建一个名为 employee 的表。下表列出了 employee 表中的字段及其数据类型-
Sr.No 字段名称 数据类型
开斋节 内部
姓名 字符串
工资 浮动
指定 字符串
以下数据定义了支持的字段,例如 Comment,行格式的字段,例如 Field terminatorLines terminator存储的文件类型
COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE
以下查询使用上述数据创建一个名为 employee 的表。
./hcat –e "CREATE TABLE if NOT EXISTS employee ( eid int, name String, 
   salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"
如果添加选项 IF NOT EXISTS,HCatalog 会在表已存在的情况下忽略该语句。
成功创建表后,您将看到以下响应-
OK
Time taken: 5.905 seconds

加载数据语句

一般情况下,在SQL中创建表后,我们可以使用Insert语句插入数据。但是在HCatalog中,我们使用LOAD DATA语句插入数据。
在向HCatalog中插入数据时,最好使用LOAD DATA来存储批量记录。加载数据有两种方式:一种是 本地文件系统,第二种是 Hadoop文件系统

语法

LOAD DATA 的语法如下-
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
LOCAL 是指定本地路径的标识符。它是可选的。 OVERWRITE 是可选的,用于覆盖表中的数据。 PARTITION 是可选的。

示例

我们将下面的数据插入到表中。它是 /home/user 目录中名为 sample.txt 的文本文件。
1201  Gopal        45000    Technical manager
1202  Manisha      45000    Proof reader
1203  Masthanvali  40000    Technical writer
1204  Kiran        40000    Hr Admin
1205  Kranthi      30000    Op Admin
以下查询将给定的文本加载到表中。
./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"
成功下载后,您会看到以下响应-
OK
Time taken: 15.905 seconds
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4