Dale LaBossiere created EDGENT-409:
--------------------------------------
Summary: Add analytic aggregations for non-JsonObject types
Key: EDGENT-409
URL: https://issues.apache.org/jira/browse/EDGENT-409
Project: Edgent
Issue Type: New Feature
Components: Analytics
Reporter: Dale LaBossiere
Assignee: Dale LaBossiere
On more than one occasion I've found myself wishing for analytic aggregations
like our {{o.a.e.analytics.math3.stat.Statistic.MEAN}}, etc but either being
unable to use {{JsonAnalytics}} because it lacks batched aggregation support or
simply wanting something less cumbersome to use because I had a simple use case
- e.g., wanting to compute a windowed MEAN for a TStream<Double> yielding a
stream of TStream<Double>.
Life would be better if there were Collection-based (not TStream/TWindow based)
aggregation methods supporting the same set of Statistic and Regression
aggregate ops that have been defined for use on JsonObjects. For example,
{code}
static double aggregate(Collection<? extends Number> c, UnivariateAggregate
stat)
{code}
See the associated PR for the full API, etc.
Unfortunately the existing {{o.a.e.analytics.math3.stat.Statistic}} and
Regression enums lack a "Json" name or package prefix though they are
inherently tied to other unnecessarily Json-specific interfaces/classes. That
results in the need to define tuple-type-agnostic analogs like Statistics2 and
Regression2 (for lack of something better) and the supporting
interfaces/classes.
Not included with this JIRA/PR is the opportunity to then unify around using
these new tuple-type-agnostic Statistic2,Regression2 by augmenting
JsonAnalytics to have methods that take them as arguments. Then json-specific
Statistic, Regression and the JsonAnalytic methods that use them can be marked
deprecated.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)