Hive-Datendeduplizierungsmethode

1. Die Daten werden alle wiederholt

Zum Beispiel:

Name Punktzahl
Computer 1600
Telefon 12
Telefon 12

Schritte:

1. Tabellenstruktur kopieren
CREATE TABLE <new_table> LIKE <old_table>;

2. Fügen Sie deduplizierte Daten ein
insert overwrite table
<new_table> select distinct * from <old_table> ;

ps: Manchmal wird beim Ausführen dieser Anweisung der folgende Fehler gemeldet:
FAILED: SemanticException TOK_ALLCOLREF is not supported in current context

Schreiben Sie einfach alle Spaltennamen:
insert overwrite table
<new_table> select distinct name, score from <old_table> ;

2. Teilweise Datenduplizierung

Zum Beispiel:

Name Punktzahl Typ
Computer 1600 2
Telefon 12 1
Telefon 15 1

Schritte:

1. Tabellenstruktur kopieren
CREATE TABLE <new_table> LIKE <old_table>;

2. Fügen Sie deduplizierte Daten ein
insert overwrite table <new_table>(
select t.name, t.score, t.type
from (
select
name, score, ,type, row_number() over(distribute by name sort by score ) as rn
from <old_table>
) t where t.rn=1
);

3. Zusammenfassend:

insert overwrite table <new_table> (
select <字段>
from (
select <字段>, row_number() over(distribute by <有重复的字段> sort by <重复字段的排列根据字段>) as rn
from <old_table>
) t where t.rn=1
);

  • Angehängt: Grundlegende Verwendung der ROW_NUMBER() OVER-Funktion

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

    Einfach ausgedrückt, row_number() beginnt bei 1 und gibt eine Zahl für jeden gruppierten Datensatz zurück. Hier geht ROW_NUMBER() OVER (ORDER BY
    xlh DESC) zuerst die xlh-Spalte abwärts und gibt dann eine fortlaufende Nummer für keinen xlh-Datensatz nach der absteigenden Reihenfolge zurück . Beispiel: xlh row_num
    1700 1 1500 2 1085 3 710
    4

    row_number() OVER (PARTITION BY COL1 ORDER BY COL2)
    bedeutet Gruppierung nach COL1 und Sortierung nach COL2 innerhalb der Gruppe, und der von dieser Funktion berechnete Wert stellt die Sequenznummer nach Sortierung innerhalb jeder Gruppe dar (fortlaufend und eindeutig innerhalb der Gruppe )

Supongo que te gusta

Origin blog.csdn.net/selectgoodboy/article/details/88532005
Recomendado
Clasificación