我目前正在通过pydruid使用时间序列查询来计算Druid数据源中单个维度的平均值。这基于文档(https://github.com/druid-io/pydruid)中的示例:
from pydruid.client import PyDruid
from pydruid.utils.aggregators import count, doublesum
client = PyDruid()
client.timeseries(
datasource='test_datasource',
granularity='hour',
intervals='2019-05-13T11:00:00.000/2019-05-23T17:00:00.000',
aggregations={
'sum':doublesum('dimension_name'),
'count': count('rows')
},
post_aggregations={
'average': (
Field('sum')/ Field('count')
)
}
)
我的问题是我不知道count('rows')在做什么。这似乎给出了数据源的总行数,并且未在维度上进行过滤。因此,我不知道如果所讨论的维度中的一行具有空值,则平均值是否会不正确。
我想知道是否有人知道如何正确计算平均值?
非常感谢