赞
踩
Hive的内部表是Hive默认创建的表,其数据存储在Hive的默认存储路径下,并由Hive管理。当删除内部表时,表的元数据和数据都会被删除。
创建内部表的SQL语句示例:
- CREATE TABLE internal_table (
- id INT,
- name STRING,
- age INT
- )
- ROW FORMAT DELIMITED
- FIELDS TERMINATED BY ','
- STORED AS TEXTFILE;
在上述示例中,我们创建了一个名为internal_table
的内部表,包含id
、name
和age
三个字段。字段之间使用逗号,
分隔,并指定了表的存储格式为TEXTFILE。
查看所有表:
SHOW TABLES;
查看内部表结构:
DESCRIBE internal_table;
使用DESCRIBE
或DESC
命令可以查看表的结构信息,包括字段名、字段类型等。
Hive支持使用ALTER TABLE
语句来修改内部表的结构。
修改表名:
ALTER TABLE old_internal_table_name RENAME TO new_internal_table_name;
添加字段:
ALTER TABLE internal_table ADD COLUMNS (new_column_name data_type);
修改字段:
Hive不直接支持修改字段名或数据类型,但可以通过添加新字段和删除旧字段的方式来模拟修改字段。对于数据类型修改,通常需要重新创建表或迁移数据到新表。
删除内部表时,表的元数据和数据都会被删除。
删除内部表:
DROP TABLE internal_table;
执行上述命令后,internal_table
表及其数据将被永久删除。
CREATE EXTERNAL TABLE external_table( | |
id INT, | |
name STRING, | |
age INT | |
) | |
ROW FORMAT DELIMITED | |
FIELDS TERMINATED BY ',' | |
LOCATION '/path/to/data'; |
方法:
方法:
方法:
步骤:
准备HDFS目录和数据:首先,在HDFS上创建一个目录用于存储外部表的数据。可以使用hdfs dfs -mkdir -p /path/to/data
命令创建目录,并使用hdfs dfs -put /local/path/to/data /path/to/data
命令上传数据。
执行创建外部表语句:使用CREATE EXTERNAL TABLE
语句创建外部表,并指定表的存储路径。例如:
SHOW TABLES;
命令可以查看Hive中的所有表,包括内部表和外部表。DESCRIBE external_table;
或DESC external_table;
命令可以查看外部表的结构信息。ALTER TABLE old_external_table_name RENAME TO new_external_table_name;
命令可以修改外部表的名称。ALTER TABLE external_table ADD COLUMNS (column_name data_type, ...);
命令可以添加新列,而替换列则相对复杂,通常需要先添加新列,然后删除旧列。ALTER TABLE external_table SET FILEFORMAT file_format;
可以修改文件的存储格式(如TEXTFILE、ORC等),使用ALTER TABLE external_table SET LOCATION 'new_hdfs_path';
可以修改表在HDFS上的存储位置。DROP TABLE external_table;
命令可以删除外部表的元数据,但HDFS上的数据文件不会被删除。这是外部表与内部表的主要区别之一。DROP TABLE
命令。但请注意,手动删除HDFS上的数据可能会导致数据丢失,因此请务必谨慎操作。ALTER TABLE
语句添加、删除或修改分区。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。