Wie sortiere ich ein Array und gebe den Index in Hive zurück?

Zhangboyu

In Hive möchte ich ein Array vom größten zum kleinsten sortieren und das Index-Array erhalten.

Die Tabelle sieht beispielsweise folgendermaßen aus:

id  |  value_array
 1  |  {30, 40, 10, 20}
 2  |  {10, 30, 40, 20}

Ich mit, um das zu bekommen:

id  |  value_array
 1  |  {1, 0, 3, 2}
 2  |  {2, 1, 3, 0}

Das Ergebnis ist der Index der Anfangselemente. Wie kann ich das erreichen?

Leftjoin

Explodiere Array mit Posexplode, um Index und Wert zu erhalten, sortiere nach Wert, sammle Array von Index:

select id, collect_list(pos) as result_array
from
(
select s.id, a.pos, a.v 
  from your_table s
       lateral view posexplode(s.value_array) a as pos, v
distribute by s.id sort by a.v DESC --sort by value
)s
group by id
;

Getestet, Ergebnis:

id  result_array
1   [1,0,3,2]
2   [2,1,3,0]

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie lese ich ein Array und gebe ein Array zurück?

Wie erhalte ich den eindeutigen Zeilenwert und gebe ein boolesches Ergebnis in Python-Pandas zurück?

Wie vergleiche ich zwei Arrays und gebe dann den Index der Differenz zurück?

Wie gebe ich das Gewicht und den entsprechenden Index in diesem Knapsack-Java-Code zurück?

Wie gehe ich mit verschachteltem Array mit >> um und gebe ein flaches Array zurück?

Wie gebe ich den Index von zwei Arrays zurück?

Wie gebe ich den Index des Zielelements in einem Python-Array zurück?

Wie gebe ich ein benutzerdefiniertes Array von Objekten zurück und verbinde einige andere Tabellen?

Wie gebe ich ein Array mit Klassentyp und Füllung zurück?

TypeScript: Wie finde ich ein Objekt in einem Array und gebe dieses bestimmte Objekt zurück?

Wie schleife ich ein Array von Objekten und gebe seinen Wert innerhalb des Arrays zurück?

Wie gebe ich ein Array von einem Reduzierer zurück?

Wie gebe ich ein erstelltes Array in Java zurück?

Wie gebe ich ein Array im Reduzierer zurück?

Wie gebe ich ein solches mehrdimensionales Array zurück?

Wie gebe ich ein solches mehrdimensionales Array zurück?

Wie gebe ich ein Array von HTML an JavaScript zurück?

Wie gebe ich ein Array in c mit pthreads zurück?

Wie gebe ich ein Array von Fremdzeilen in SQLITE zurück?

Wie iteriere ich über ein Array von Objekten, die mit einem gemeinsamen Element aus einem anderen Array übereinstimmen, und gebe den Schlüsselwert für "name" zurück?

Wie sortiere ich nach einem Feld und gebe nur die erste Zeile pro Gruppierung zurück?

Wie gebe ich ein Objekt von einer Funktion zurück, die ein Promise und ein .then enthält, und wie erhalte ich den zurückgegebenen Wert in einer anderen Funktion?

Wie füge ich XML-Werte von untergeordneten Knoten in ein Array ein und gebe dieses Array zurück?

Wie lösche ich ein Element aus dem Array in einem Objekt und gebe ein neues Objekt zurück?

Wie lade ich ein Bild in den Firebase-Speicher hoch und gebe dann die Download-URL zurück?

Wie gebe ich ein Projektionsdatum basierend auf einem Startdatum, der Belegschaft und den budgetierten Stunden an Werktagen zurück?

Wie gebe ich den Tabellenzellenwert einer Webseite ohne ID unter Verwendung von Spalten- und Zeilennamen (nicht Index) zurück?

Wie gebe ich ein InternalErrorResult zurück?

Wie gebe ich ein Array von Schlüsseln zurück, die nur leere Werte in den Objekten haben?

TOP Liste

heißlabel

Archiv