Skip to content

Commit

Permalink
add Quantile Sketch for aggregator and postaggregator (#287)
Browse files Browse the repository at this point in the history
Co-authored-by: jaimelyn.maico <jaimee07>
  • Loading branch information
jaimee07 authored Dec 1, 2023
1 parent c12bfaf commit a3a3c35
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ repos:
rev: 19.10b0
hooks:
- id: black
additional_dependencies: ['click<8.1']
language_version: python3

- repo: https://github.com/asottile/seed-isort-config
Expand Down
4 changes: 4 additions & 0 deletions pydruid/utils/aggregators.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ def thetasketch(raw_column, isinputthetasketch=False, size=16384):
}


def quantilesDoublesSketch(raw_column, k=128):
return {"type": "quantilesDoublesSketch", "fieldName": raw_column, "k": k}


def min(raw_metric):
"""
.. note:: Deprecated use `longMin`, `doubleMin' instead
Expand Down
14 changes: 14 additions & 0 deletions pydruid/utils/postaggregator.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,20 @@ def rename_postagg(new_name, post_aggregator):
]


class QuantilesDoublesSketchToQuantile(Postaggregator):
def __init__(self, name: str, field_name: str, fraction: float):
self.post_aggregator = {
"type": "quantilesDoublesSketchToQuantile",
"name": name,
"fraction": fraction,
"field": {
"fieldName": field_name,
"name": field_name,
"type": "fieldAccess",
},
}


class Quantile(Postaggregator):
def __init__(self, name, probability):
Postaggregator.__init__(self, None, None, name)
Expand Down

0 comments on commit a3a3c35

Please sign in to comment.