You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@datafu.apache.org by "Matthew Hayes (JIRA)" <ji...@apache.org> on 2016/04/06 02:35:25 UTC

[jira] [Commented] (DATAFU-117) New UDF - CountDistinctUpTo

    [ 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)