Try changing ArrayList to just List as the argument to the evaluate function.

On Thu, Feb 13, 2014 at 12:15 PM, Manish <maa...@gmail.com> wrote:
> Hello:
> While running the hive query :
>
> hive> select "Actor", count (*) from metrics where
> array_contains(type_tuple, "Actor") and checkAttributes (attribute_tuple,
> "p1", "Actor") ;
>
> I get this error :
>
> FAILED: SemanticException [Error 10014]: Line 1:103 Wrong arguments
> '"Actor"': No matching method for class yk.HiveCheckAllAttributes with
> (array<string>, string, string). Possible choices: _FUNC_(string, string,
> string)
>
>
> the metrics hive table schema looks like :
>
> hive> describe metrics;
> OK
> col_name data_type comment
> entity_uuid string
> type_tuple array<string>
> attribute_tuple array<string>
>
>
> the class yk.HiveCheckAllAttributes extends UDF and has evaluate method
> defined as :
>
> --snip--
> public boolean evaluate(ArrayList<String> payload, String pType, String
> type) {
> ...
> }
>
> I have tried Text type and still go the same error..
> --snip--
> public boolean evaluate(Text payload, String pType, String type) {
> ...
> }
>
>
>
> How can I pass Hive Array<Strings> as an argument to a simple UDF?
>
> /Manish

Reply via email to