2

I'm trying to concatenate the element of int array to one string in .

The function concat_ws works only for string arrays, so I tried cast(my_int_array as string) but it's not working.

Any suggestion?

2 Answers 2

4

Try to transform using /bin/cat:

from mytable select transform(my_int_array) using '/bin/cat' as (my_int_array);

Second option is to alter table and replace delimiters:

1) ALTER TABLE mytable  CHANGE COLUMN my_int_array = my_int_array_string string;
2) SELECT REPLACE(my_int_array_string, '\002', ', ') FROM mytable;
Sign up to request clarification or add additional context in comments.

Comments

0

It seems that the easiest way is to write a custom UDF to perform this specific task:

public class ConcatIntArray extends UDF {
   public String evaluate(ArrayList<Integer> in, final String delimiter){
       return in.stream().map(u-> String.valueOf(u)).collect(Collectors.joining(delimiter));
   }
} 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.