目录
创建表 (CREATE TABLE
)
在 Hive 中创建表需要指定表的结构,包括表名、列名、数据类型、分区等。
示例:创建一个简单的表
CREATE TABLE employees (
id INT,
name STRING,
salary FLOAT,
department STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
示例:创建带有分区的表
CREATE TABLE employees_partitioned (
id INT,
name STRING,
salary FLOAT
)
PARTITIONED BY (department STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
插入数据 (INSERT
)
Hive 支持从查询结果中插入数据,也可以通过 LOAD DATA
命令直接从文件加载数据。
示例:插入数据到表中
INSERT INTO TABLE employees
VALUES (1, 'John Doe', 5000.0, 'HR');
示例:从查询结果插入数据
INSERT INTO TABLE employees
SELECT id, name, salary, department FROM temp_employees;
示例:加载外部文件数据
LOAD DATA LOCAL INPATH '/path/to/local/file'
INTO TABLE employees;
查询数据 (SELECT
)
Hive 的查询语法类似于 SQL,支持多种查询操作。
示例:简单查询
SELECT * FROM employees;
示例:条件查询
SELECT name, salary
FROM employees
WHERE department = 'HR';
示例:分组查询
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
更新数据 (UPDATE
)
注意:Hive 本身不支持原生的 UPDATE
操作。如果需要更新数据,通常需要创建一个新的数据集,或者使用 INSERT OVERWRITE
来覆盖数据。
示例:使用 INSERT OVERWRITE
进行类似更新的操作
INSERT OVERWRITE TABLE employees
SELECT id, name, salary, department
FROM employees
WHERE id != 2
UNION ALL
SELECT 2, 'Jane Smith', 7000.0, 'HR'
WHERE NOT EXISTS (SELECT 1 FROM employees WHERE id = 2);
删除数据 (DELETE
)
注意:Hive 本身不支持原生的 DELETE
操作。如果需要删除数据,通常需要创建一个新的数据集,或者使用 INSERT OVERWRITE
来覆盖数据。
示例:使用 INSERT OVERWRITE
进行类似删除的操作
INSERT OVERWRITE TABLE employees
SELECT * FROM employees
WHERE id != 1;
删除表 (DROP TABLE
)
删除表将会删除表的结构和所有数据。
示例:删除表
DROP TABLE employees;