【发布时间】:2018-02-12 21:17:57
【问题描述】:
我必须在hive 中使用一个列对表进行分区,该列也是表的一部分。
例如:
表:员工
列:employeeId、employeeName、employeeSalary
我必须使用employeeSalary 对表进行分区。 所以我写了以下查询:
CREATE TABLE employee (employeeId INT, employeeName STRING, employeeSalary INT) PARTITIONED BY (ds INT);
我在这里只使用了名称“ds”,因为它不允许我使用相同的名称employeeSalary。
我这样做对吗?此外,在向表中插入值时,我必须使用逗号分隔的文件。现在该文件由如下行组成: 2019,约翰,2000
作为一排。 如果我必须使用薪水进行分区,我的第一个分区将是薪水 2000 的所有人。所以查询将是
LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE employee PARTITION (ds=2000);
在 100 条工资为 2000 的条目之后,我有接下来的 500 条工资为 4000 的条目。 所以我会再次触发查询:
LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE employee PARTITION (ds=4000);
如果我是对的,请告诉我...
【问题讨论】:
标签: hive