标签: hive impala
我可以使用以下命令将数据加载到配置单元中:
LOAD DATA INPATH '/xx/person/a.csv' INTO TABLE person PARTITION (age = 30);
在上面的语句中,age=30是必须存储数据的分区。
age=30
如果 a.csv 实际上有年龄栏,该怎么办?有没有办法让hive使用一个LOAD DATA语句正确地将a.csv的每一行插入到右侧分区下的person表中?
答案 0 :(得分:1)
LOAD DATA仅支持静态分区:“当LOAD DATA语句在分区表上运行时,它总是一次在一个分区上运行。”
INSERT支持动态分区:“如果提到了分区键列但未分配值,则[...]未分配的列将填入SELECT的最后一列列表“。
所以你可以做的是在源数据上定义一个表,也可以定义一个视图来将分区列移动到最终位置,最后使用insert into [...] select [...]从视图中填充分区表。 / p>
insert into [...] select [...]