[
https://issues.apache.org/jira/browse/DATAFU-117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15227447#comment-15227447
]
Matthew Hayes commented on DATAFU-117:
--------------------------------------
Can you open a review board so it is easier to provide feedback?
Some feedback though:
* CountDistinctUpTo.java is missing the standard heading. You can run "gradle
rat" to verify. This isn't automatically run, however it may be reasonable to
do this. I'll file a JIRA for that.
* The documented order of parameters isn't consistent with implementation.
* If the input size isn't 2 it should throw an error.
* It's not clear to me why only the first element of the tuples within the bag
is used.
* You should use "this.set.size() >= maxAmount" instead of "this.set.size() ==
maxAmount" to be safe.
* The condition "this.set.add(o) && (this.set.size() == maxAmount)" seems like
it could caused the bag to exceed the max size.
* You should have a unit test that uses tuples of more than one element.
* You should have a unit test that calls the accumulate method multiple times.
I think the lack of this is why the bug I mention above wasn't caught.
> New UDF - CountDistinctUpTo
> ---------------------------
>
> Key: DATAFU-117
> URL: https://issues.apache.org/jira/browse/DATAFU-117
> Project: DataFu
> Issue Type: New Feature
> Reporter: Eyal Allweil
> Attachments: DATAFU-117.patch
>
>
> A UDF that counts distinct tuples within a bag, but only up to a preset
> limit. If the bag contains more distinct tuples than the limit, the UDF
> returns the limit.
> This UDF can run reasonably well even on large bags if the limit chosen is
> small enough though the count is done in memory.
> We use this UDF in PayPal for filtering, when we don't need to use the actual
> tuples afterward.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)