【发布时间】:2022-01-17 06:45:37
【问题描述】:
我必须为客户复制一个流程。我从未与 Hive 合作过,所以我试图了解他们在其他情况下做了什么。
我试图理解的 Hive 脚本是这个:
DROP TABLE IF EXISTS distribution.030601_TI11;
CREATE EXTERNAL TABLE IF NOT EXISTS distribution.030601_TI11(
mygroup STRING, year STRING, type1 STRING, type2 STRING,
type3 STRING, myvalue INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION '/warehouse/distribution/030601_TI11';
INSERT OVERWRITE TABLE distribution.030601_TI11
SELECT *
FROM develop.030601_TI11;
他们在做什么?
据我了解 Hive,在外部表上的 DROP TABLE IF EXISTS 语句只会删除表元数据而不是表数据。但我想知道INSERT OVERWRITE 语句是否删除了存储在表中的先前条目,并仅插入指定位置中包含的新行
另外,LOCATION 是如何管理的?我想从单个 .csv 文件创建表。我可以写LOCATION '/warehouse/develop/myfile.csv' 之类的东西吗,或者我只能提供一个 HDFS 目录作为位置?
【问题讨论】:
标签: hive hdfs hiveql create-table hiveddl