【问题标题】:How to apply Partition on hive table which is already partitioned如何在已经分区的配置单元表上应用分区
【发布时间】:2017-07-01 00:42:47
【问题描述】:

如何在已经分区的 hive 表上应用分区。加载数据后,我无法将分区数据提取到文件夹中。

【问题讨论】:

  • 请添加更多详细信息,例如,1. 旧分区是否仍然存在。 2. 新分区是在现有列上完成的,还是添加了任何新列 3. 创建新分区后,您如何加载数据。这些可以决定将数据加载到分区中的方式。查看here 了解有关更改表、列和分区的更多信息

标签: hive partition


【解决方案1】:

hive 分区的第一条规则是分区列应该是数据中的最后一列。由于数据已经分区,假设我们正在对性别 M/F 的数据进行分区,将在每个目录中创建两个目录,gender=M 和 gender=F,相应的性别数据将可用,并且该数据中的最后一列将是性别。

如果您想在分区表上再次对数据进行分区,请使用 insert into select 并确保您使用的最后一列是您要对分区数据进行的分区列。

【讨论】:

    【解决方案2】:

    您是否使用 Hdfs 命令手动添加了分区?在这种情况下,除非您指定“alter table add partition”,否则元存储将不会跟踪正在添加的分区... 试试这个

    MSCK REPAIR TABLE table_name;
    

    如果不是这样,请尝试删除分区并重新创建分区。使用 alter table 命令执行此操作。但你会丢失数据。如果您正在执行动态分区插入,则应将您的分区列值作为最后一列提及。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多