在Hive中,你可以使用CREATE TABLE
语句来创建一个新表
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
);
例如,创建一个名为employees
的表,包含id
(INT类型)、name
(STRING类型)和age
(INT类型)三个列:
CREATE TABLE employees (
id INT,
name STRING,
age INT
);
LIKE
关键字创建一个与现有表结构相同的表:CREATE TABLE table_name LIKE existing_table;
例如,创建一个与employees
表结构相同的表new_employees
:
CREATE TABLE new_employees LIKE employees;
IF NOT EXISTS
选项,如果表已经存在,则不会创建新表,也不会报错:CREATE TABLE IF NOT EXISTS table_name (
column1 data_type,
column2 data_type,
...
);
例如,创建一个名为employees_backup
的表,如果employees
表已经存在,则不会创建新表:
CREATE TABLE IF NOT EXISTS employees_backup (
id INT,
name STRING,
age INT
);
PARTITIONED BY
选项,根据指定的列对表进行分区:CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
) PARTITIONED BY (partition_column1 data_type, partition_column2 data_type, ...);
例如,创建一个名为sales
的表,包含id
(INT类型)、product
(STRING类型)和amount
(BIGINT类型)三个列,并根据product
列进行分区:
CREATE TABLE sales (
id INT,
product STRING,
amount BIGINT
) PARTITIONED BY (product STRING);
CLUSTERED BY
和SORTED BY
选项对表进行排序:CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
) CLUSTERED BY (cluster_column) SORTED BY (sort_column1 [ASC|DESC], sort_column2 [ASC|DESC], ...);
例如,创建一个名为orders
的表,包含id
(INT类型)、customer_id
(INT类型)和total_amount
(BIGINT类型)三个列,并根据customer_id
列进行聚类,然后根据total_amount
列降序排序:
CREATE TABLE orders (
id INT,
customer_id INT,
total_amount BIGINT
) CLUSTERED BY (customer_id) SORTED BY (total_amount DESC);
这些是创建Hive表时常用的一些选项。你可以根据需要组合使用这些选项来创建适合你需求的表。