Hive加载特定列

时间:2014-07-30 08:30:01

标签: hadoop hive

我有兴趣将特定列加载到在Hive中创建的表中。

是否可以直接加载特定列,或者我应该加载所有数据并创建第二个表以选择特定列?

由于

3 个答案:

答案 0 :(得分:2)

是的,你必须加载这样的所有数据:

LOAD DATA [LOCAL] INPATH /Your/Path [OVERWRITE] INTO TABLE yourTable;

LOCAL表示您的文件位于本地系统而非HDFS中,OVERWRITE表示将删除表中的当前数据。

因此,您只创建了第二个表,其中只包含您需要的字段,并执行此查询:

INSERT OVERWRITE TABLE yourNewTable 
yourSelectStatement 
FROM yourOldTable;

答案 1 :(得分:1)

试试这个:

Insert into table_name
(
#columns you want to insert value into in lowercase
)
select columns_you_need from source_table;

答案 2 :(得分:1)

建议在Hive中创建一个外部表并映射您拥有的数据,然后创建一个包含特定列的新表,并使用create table作为命令

create table table_name as select statement from table_name; 

例如语句如下所示

create table employee as select id as id,emp_name as name from emp;