【问题标题】:Hive: Add partitions for existing folder structureHive:为现有文件夹结构添加分区
【发布时间】:2019-07-15 03:04:05
【问题描述】:

我在 HDFS 中有一个文件夹结构,如下所示。但是,实际上没有使用ALTER TABLE ADD PARTITION 命令在表上创建分区,即使文件夹结构设置为好像表有分区一样。

如何自动将所有分区添加到 Hive 表? (Hive 1.0,外部表)

/user/frank/clicks.db
  /date=20190401
    /file0004.csv
  /date=20190402
    /file0009.csv
  /date=20190501
    /file0000.csv
    /file0001.csv
...etc

【问题讨论】:

    标签: hadoop hive hdfs partitioning hive-partitions


    【解决方案1】:

    使用msck修复表命令:

    MSCK [REPAIR] TABLE tablename;
    

    ALTER TABLE tablename RECOVER PARTITIONS;
    

    如果您在 EMR 上运行 Hive。

    在此处阅读有关这两个命令的更多详细信息:RECOVER PARTITIONS

    【讨论】:

    • 好的,这很棒 - 比编写 bash/beeline 脚本要好。使用这种方式定期获取新分区有什么缺点吗?
    • @lifebythedrop 使用alter table add partition 仅添加新添加的分区可能会更快一些,因为它不会扫描所有表目录并获取所有分区元数据以与已添加的内容进行比较。同样使用 alter table add partition 您可以在表位置之外添加分区。如果您不需要添加位于表位置之外的分区,恢复工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多