2016-07-21 14 views
0

I mit folgenden Partitionen einen Bienenstock Tabelle haben:Wie die zweite letzte Partition in Stock bekommen (HQL)

part_date='07-12-2016'

part_date='04-12-2016'

part_date='01-12-2016'

Nun, wie kann ich die erste bekommen Partition, die kleiner ist als die letzte Partition in der Hive-Abfrage. Angenommen, die Partitionswerte sind das Datum, an dem die Daten in die Tabelle aufgenommen werden. In diesem Fall sollte part_date = '04 -12-2016 'sein.

so sollte die Abfrage wie:

select part_date from table_A where part_date > second_last_partition(ie 04-12-2016);

Vielen Dank im Voraus

Antwort

1

Sie die Funktion row_number Fenster verwenden können und die zweitletzte Reihe bekommen.

Ich nehme an, die part_date Spalte ist eindeutig. Wenn nicht, sollten Sie die dense_rank Funktion verwenden.

+0

Hallo, Danke für Ihre Antwort, aber ich versuche, den vorletzten Partition Wert, nicht die gesamten Daten in der Partition zu bekommen. Ich kann die Frage bearbeiten. – Neethu

+0

sehen Sie die bearbeitete Antwort. –

+0

Danke das funktioniert. Aber für eine Null-Byte-Datei in hdfs kann ich den Abfrage-Wok nicht bekommen. Da Hive die 0-Byte-Datei liest und keinen Wert für die Partition findet. Gibt es eine Umgehung dafür? – Neethu