Hive is not filtering on the result of a UDF in the way I expect or desire it 
to.  The example below shows a very small sample table.  The nested query that 
follows the table dump attempts to filter the results on the basis of a 
row_number UDF.  The thing to note is that in the query results, 'rn' 
increments steadily from 1 to 15.  Next, note that the last clause of the query 
intended to filter the result to only those result rows where 'rn' equals 1.  
In other words, I expected the query to only return the first result row.  What 
am I missing?  Thanks.

hive> set hive.cli.print.header=true;
hive> select * from test;
OK
foo     bar     user    category        value
foo     bar     user1   catA    1
foo     bar     user1   catB    2
foo     bar     user1   catC    3
foo     bar     user2   catA    99
foo     bar     user2   catB    98
foo     bar     user2   catC    97
foo     bar     user3   catA    100
foo     bar     user3   catB    100
foo     bar     user3   catC    100
foo     bar     user3   catA    200
foo     bar     user3   catB    200
foo     bar     user3   catC    200
foo     bar     user3   catA    300
foo     bar     user3   catB    300
foo     bar     user3   catC    300
Time taken: 0.092 seconds
hive> select * from (
    >     select *, row_number(foo) as rn
    >     from (
    >         select foo, bar, user, category, value
    >         from test
    >             where foo = 'foo'
    >     sort by foo ) a
    > sort by rn ) b
    > where rn = 1;
[...MAP_REDUCE...]
OK
foo     bar     user    category        value   rn
foo     bar     user1   catA    1       1
foo     bar     user1   catB    2       2
foo     bar     user1   catC    3       3
foo     bar     user2   catA    99      4
foo     bar     user2   catB    98      5
foo     bar     user2   catC    97      6
foo     bar     user3   catA    100     7
foo     bar     user3   catB    100     8
foo     bar     user3   catC    100     9
foo     bar     user3   catA    200     10
foo     bar     user3   catB    200     11
foo     bar     user3   catC    200     12
foo     bar     user3   catA    300     13
foo     bar     user3   catB    300     14
foo     bar     user3   catC    300     15
Time taken: 87.933 seconds
hive>


________________________________________________________________________________
Keith Wiley     kwi...@keithwiley.com     keithwiley.com    music.keithwiley.com

"I do not feel obliged to believe that the same God who has endowed us with
sense, reason, and intellect has intended us to forgo their use."
                                           --  Galileo Galilei
________________________________________________________________________________

Reply via email to