【问题标题】:How to delete Hive default partition value, __HIVE_DEFAULT_PARTITION__如何删除 Hive 默认分区值,__HIVE_DEFAULT_PARTITION__
【发布时间】:2020-06-30 01:32:33
【问题描述】:

我正在为 Hive 使用 Glue metastore,并且我有 AWS EMR 集群来查询和修改 Hive 表。

我的数据保存在 S3 中

我有 3 个分区列:

yr_no: int, month_no: int, uniq_id: int

但是我有一些文件具有 NULL 值,Hive 将 yr_no 和 month_no 的分区值设置为 HIVE_DEFAULT_PARTITION

但由于 yr_no 和 month_no 都是整数,我不能轻易删除这些分区。

我尝试了以下格式:

ALTER TABLE table DROP PARTITION(yr_no=__HIVE_DEFAULT_PARTITION__);
ALTER TABLE table DROP PARTITION(yr_no<1);

第一个命令抱怨,因为该列是 int,第二个抱怨语法

有没有简单的方法把它放到 yr_no=HIVE_DEFAULT_PARTITION 或 month_no=HIVE_DEFAULT_PARTITION

【问题讨论】:

    标签: amazon-web-services apache-spark hadoop hive aws-glue


    【解决方案1】:

    也许你可以先使用show partitons。然后,使用desc formatted partition(yr_no=xxx,month_no=xxxx)查看详细信息。

    【讨论】:

      【解决方案2】:

      您可以执行以下操作,它会起作用。

      ALTER TABLE table DROP PARTITION(yr_no='__HIVE_DEFAULT_PARTITION__');
      

      【讨论】:

      • 我也尝试了这种变体,但在胶水 Metastore 中,它抱怨这是一个字符串而不是整数,因为 yr_no 是一个 Int。但是 Hive Metastore 是否运行良好
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      相关资源
      最近更新 更多