web-dev-qa-db-fra.com

Comment puis-je convertir un tableau en chaîne dans Hive sql?

Je veux convertir un tableau en chaîne dans Hive. Je veux collecter les valeurs du tableau set à convertir en chaîne sans [[""]].

select actor, collect_set(date) as grpdate from actor_table group by actor;

pour que [["2016-07-01", "2016-07-02"]] deviendrait 2016-07-01, 2016-07-02

19
Bethlee

Utilisez la fonction concat_ws(string delimiter, array<string>) pour concaténer le tableau:

select actor, concat_ws(',',collect_set(date)) as grpdate from actor_table group by actor;

Si le champ de date n'est pas une chaîne, convertissez-le en chaîne:

concat_ws(',',collect_set(cast(date as string)))

Lisez également cette réponse sur les méthodes alternatives si vous avez déjà un tableau et que vous ne voulez pas l'exploser: Comment concaténer les élémets du tableau int pour les chaîne dans Hive

33
leftjoin