在 Hive 中导入数据有多种方式,具体用哪种取决于你的数据来源(本地文件、HDFS、其他表等)。下面按常见场景给你总结一下。
LOAD DATA LOCAL INPATH适用于:本地服务器上的文件(如 CSV、TXT)
LOAD DATA LOCAL INPATH '/home/user/data.txt'
INTO TABLE test_table;
覆盖已有数据:
LOAD DATA LOCAL INPATH '/home/user/data.txt'
OVERWRITE INTO TABLE test_table;
✅ 要求:
TEXTFILELOAD DATA INPATH适用于:HDFS 上的文件
LOAD DATA INPATH '/user/hive/data/data.txt'
INTO TABLE test_table;
⚠️ 注意:
不加LOCAL表示从 HDFS 导入,文件会被移动到 Hive 表目录
INSERT INTO / INSERT OVERWRITEINSERT INTO TABLE table_b
SELECT * FROM table_a;
覆盖写入:
INSERT OVERWRITE TABLE table_b
SELECT * FROM table_a;
也可以加条件:
INSERT INTO TABLE table_b
SELECT * FROM table_a
WHERE dt='2024-01-01';
CREATE EXTERNAL TABLE ext_table (
id INT,
name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/user/hive/external_data';
✅ 数据已在 HDFS,不需要“导入”
常见建表示例:
CREATE TABLE user_info (
id INT,
name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
其他格式:
STORED AS ORCSTORED AS PARQUETSTORED AS AVROLOAD DATA 只是“移动/复制文件”,不做格式转换LOAD DATA如果你愿意,可以告诉我:
我可以给你针对性的导入命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。