Ranga rozpoczyna się od 1, a jeśli jakieś wartości są takie same w dwóch lub więcej rzędach, wówczas ta sama ranga zostanie przypisana.
Tutaj wartości pochodzą z kolumny, w której określiliśmy kolumnę wewnątrz Orderby (). Tak więc, w oparciu o wartości w tej kolumnie, Gense_Rank () sprawdza wartości i przypisuje numer rang.
Najważniejsze jest to, że Gense_Rank () nie jest dostępny bezpośrednio. Musimy to zaimportować z Pyspark.SQL.Funkcje moduł.
W PYSPARK można podzielić wiersze w ramce danych za pomocą funkcji okna. Jest dostępny w Pyspark.SQL.okno moduł.
Zaletą partycji jest osiągnięcie spójności danych i grupowanie. Po wykonaniu partycji możemy ustawić rangi na rzędach w każdej partycji za pomocą funkcji Gense_Rank ().
Możliwe jest podział wierszy w ramce danych na podstawie wartości w określonej kolumnie. Tak więc wszystkie podobne wartości są ustawione na każdą partycję.
Musimy wykonać następujące kroki do podziału i zastosować Gense_Rank na partycjonowanych danych:
Kroki:
Zaimplementujmy kod.
Przykład 1
Tutaj utworzymy Pyspark DataFrame, który ma 5 kolumn: [„tematy_id”, „name”, „wiek”, „technologia Technologia 1 Korzystanie z funkcji okna.
Wreszcie, damy szeregi do wierszy we wszystkich partycjach, dodając nową kolumnę o nazwie „Gęsta ranga".
Import PysparkWyjście:
Wyjaśnienie
Pierwsze wyjście reprezentuje rzeczywiste dane obecne w ramce danych.
W drugim wyjściu partycja jest wykonywana na podstawie Technologia 1 kolumna.
Łączne partycje: - 4
Partycja 1:
.Net wystąpiła dwa razy w pierwszej partycji. Wartości w kolumnie tematycznej są takie same. Stąd funkcja gense_rank () zwraca tę samą ranga 1 dla obu .Wartości netto.
Partict 2:
Hadoop miał miejsce raz w drugim partycji. Tak więc ranga to 1.
Partycja 3:
Oracle wystąpiła cztery razy w trzeciej partycji.
W przypadku dwóch pierwszych wyroczni wartości Temat_id są takie same, więc dla obu rangi 1 jest przypisywane.
Dla trzeciego wyroczni ranga to 2.
Dla ostatniego wyroczni ranga to 3.
Partycja 4:
PHP wystąpił trzykrotnie w czwartej partycji, a wartości w kolumnie tematycznej są takie same dla wszystkich. Stąd ranga to 1 dla wszystkich php.
Przykład 2
Tutaj, korzystając z funkcji okna, podzielimy wiersze na podstawie Technologia2.
Wreszcie, uszeregujemy wiersze na podstawie kolumny tematu_id we wszystkich partycjach, dodając nową kolumnę o nazwie „Gęsta ranga".
(Jeśli nie utworzyłeś Pyspark DataFrame, utwórz go za pomocą pierwszego przykładu.)
# Zaimportuj funkcję oknaWyjście:
Wyjaśnienie
Dane wyjściowe reprezentuje rzeczywiste dane obecne w ramce danych.
W drugim wyjściu partycja jest wykonywana na podstawie Technologia2 kolumna i uporządkowane na podstawie kolumny tematycznej.
Łączne partycje: - 3
Partycja 1:
C# wystąpił trzy razy w pierwszej partycji. Ponadto dwie pierwsze wartości w kolumnie tematycznej są takie same. Stąd funkcja Gense_Rank () zwraca tę samą ranga-1 dla pierwszych dwóch c#, a dla trzeciego c#ranga to 2.
Partict 2:
HTML wystąpił dwukrotnie w drugim partycji, a wartości podmiotu są różne dla tych dwóch. Tak więc ranga 1 jest przypisywana do pierwszego HTML, a ranga-2 jest przypisywana na drugi.
Partycja 3:
Testy miały miejsce pięć razy w partycji trzeciej.
W przypadku dwóch pierwszych testów wartości TETS_ID są takie same, więc dla obu rangi 1 jest przypisywane.
Do trzeciego testu ranga to 2.
Do ostatnich testów ranga wynosiła 3.
Przykład 3
Tutaj, korzystając z funkcji okna, podzielimy wiersze na podstawie Technologia2.
Wreszcie, uszeregujemy wiersze na podstawie kolumny wiekowej we wszystkich partycjach, dodając nową kolumnę o nazwie „Gęsta ranga".
(Jeśli nie utworzyłeś Pyspark DataFrame, utwórz go za pomocą pierwszego przykładu.)
# Zaimportuj funkcję oknaWyjście:
Wyjaśnienie
Wyjście reprezentuje rzeczywiste dane obecne w ramce danych.
W drugim wyjściu partycja jest wykonywana na podstawie kolumny technologii2 i uporządkowana na podstawie kolumny wiekowej.
Łączne partycje: - 3
Partycja 1:
C# wystąpił trzy razy w pierwszej partycji. Wszystkie wartości w kolumnie wiekowej są różne. Stąd funkcja Gense_Rank () zwraca rangi 1,2 i 3 dla trzech wartości C#.
Partict 2:
HTML wystąpił dwa razy w pierwszej partycji. Wszystkie wartości w kolumnie wiekowej są różne. Stąd funkcja gense_rank () zwraca rangi 1 i 2 dla dwóch wartości HTML.
Partycja 3:
Testy miały miejsce pięć razy w partycji trzeciej.
Dla pierwszych trzech wartości testowych wartości wieku są takie same. Tak więc dla trzech, ranga 1 jest przypisywana.
Wartości wieku dla czwartego i piątego testowania są takie same, więc ranga 2 jest podawana obu.
Wniosek
Omówiliśmy partycjonowanie wierszy w Pyspark DataFrame i ustawienie rangi w każdej partycji za pomocą funkcji okna Gense_Rank (). Dense_Rank w Pyspark to funkcja okienna, która ustawia szeregi na rzędach w każdej partycji. Ranga rozpoczyna się od 1, a jeśli jakieś wartości są takie same w dwóch lub więcej rzędach, wówczas ta sama ranga zostanie przypisana.