gpt4 book ai didi

hadoop - Hive - 静态分区 - 直接创建分区目录与使用 alter table 语句的区别

转载 作者:可可西里 更新时间:2023-11-01 15:11:07 26 4
gpt4 key购买 nike

下面两个在 hive 中创建静态分区的语句之间是否存在任何内部/性能差异,我已经尝试了两种方法并且在将数据加载到分区后它们都可以正常工作

dfs -mkdir /user/cloudera/sqoop_import/avroData/orders_part/order_month=2014-02;
alter table orders_part add partition(order_month='2014-02');

最佳答案

此命令:dfs -mkdir/user/cloudera/sqoop_import/avroData/orders_part/order_month=2014-02; 不创建分区,它创建一个目录。该目录尚未挂载为表分区。分区是一个目录加上一个元数据,元数据包含存储在 Metastore 中的分区信息(键值+分区目录)。您可以在执行 mkdir 后使用 show partitions orders_part; 命令轻松检查它。该目录不会出现在分区列表中。

alter table orders_part add partition(order_month='2014-02'); 创建目录 order_month=2014-02 并将其挂载为分区。

可以使用动态创建分区

insert overwrite table orders_part partition(order_month) 
select ...

命令。在这种情况下,目录将自动创建并挂载为分区。

考虑一下:您可以创建一个不一定位于等于“key=value”的目录中的分区。例如:alter table orders_part add partition(order_month='2014-02') location '/user/cloudera/sqoop_import/avroData/orders_part/mydir' ; 注意分区目录现在是 '/user/cloudera/sqoop_import/avroData/orders_part/mydir'

关于hadoop - Hive - 静态分区 - 直接创建分区目录与使用 alter table 语句的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com