我有兴趣将特定列加载到在Hive中创建的表中。
是否可以直接加载特定列,或者我应该加载所有数据并创建第二个表以选择特定列?
由于
答案 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;