hadoop - 如何使配置单元查询中的 max 函数忽略 _HIVE_DEFAULT_PARTITION__
问题描述
我有一个视图,它使用 max 来显示最新的分区(格式为2021-01
, 2021-02
, 2021-03
, 2021-04
)。蜂巢表也有_HIVE_DEFAULT_PARTITION__
。
当我们在 Impala 中运行查询时,分区上的 max 给出了正确的2021-04
忽略值,_HIVE_DEFAULT_PARTITION__
但是当我们在 Hive 中运行查询时同样不起作用,因为它返回_HIVE_DEFAULT_PARTITION__
有没有办法让 Hive 查询在返回该列的最大值时忽略默认分区(如果存在)?
解决方案
你可以过滤它:
select max(partition_col) from your_table where partition_col != "__HIVE_DEFAULT_PARTITION__"
如果您不需要 中的数据__HIVE_DEFAULT_PARTITION__
,您可以将其删除:
ALTER TABLE your_table DROP PARTITION (partition_col='__HIVE_DEFAULT_PARTITION__');
如果您想聚合其他内容并且不想排除分区,则转换__HIVE_DEFAULT_PARTITION__
为 NULL 可能是一种解决方案:max(partition_col)
__HIVE_DEFAULT_PARTITION__
select max(case when partition_col = "__HIVE_DEFAULT_PARTITION__" then NULL else partition_col end) as max_partition_col,
--aggregate something else including HIVE_DEFAULT_PARTITION
from your_table
推荐阅读
- asp.net-core - 为什么我的 Azure SignalR 服务没有数据返回到我的 KendoUI Grid?
- flutter - Flutter BLoC 变量最佳实践
- javascript - Vue.js:如何根据数据表行中项目的值更改图标和背景颜色?
- windows - 从 docker(linux 容器)访问 Windows COM 端口
- oracle - Jasperserver 和 oracle 自治数据库
- optimization - 最大维矩阵
- c# - 可空引用类型和实现接口
- cakephp - CakePHP 4 Forms:不要在多选时预选
- json - 将带 href 的超链接添加到命名格式 I18n vuejs
- javascript - 如何将文本从 span 复制到没有 ID 的数据组属性?