使用LOD函数解决impala去重计数报错问题
更新时间: 2021-04-21 13:59:15
阅读 1133
使用LOD函数解决impala去重计数报错问题
问题说明:
impala不支持在同一条select语句中对多字段去重统计
具体说明,可以参考impala官方文档:
https://impala.apache.org/docs/build3x/html/topics/impala_count.html
解决方法有两个:
1)修改APPX_COUNT_DISTINCT参数
APPX_COUNT_DISTINCT=true
开启参数后,相当于使用了ndv(函数),会得到不那么精确的结果
2)使用LOD函数通过子查询绕过impala的限制
示例:
将度量【去重计数有效会员数】改为ATTR({INCLUDE : COUNTD([有效会员数])})
下面是用LOD函数实现的示例:
使用LOD函数通过子查询绕过impala的限制:
每新增一个去重统计的计算字段,在新增的计算字段里增加一重include的嵌套,如下:
流失会员数:ATTR({INCLUDE: COUNTD([流失会员数])})
新增会员数:ATTR({INCLUDE:ATTR({INCLUDE: COUNTD([新增会员数])})})
有效会员数:ATTR({INCLUDE:ATTR({INCLUDE:ATTR({INCLUDE : COUNTD([有效会员数])})})})
文档反馈
以上内容对您是否有帮助?