Partycja Pyspark ramka danych
Możliwe jest podział wierszy w ramce danych za pomocą funkcji okna. Jest dostępny w Pyspark.SQL.okno moduł. Będą dwa kroki, aby podzielić wiersze w Pyspark DataFrame.
Kroki
Składnia
parition = okno.paritionby („kolumna”)Możemy zamówić partycjonowane dane z partycjonowaną kolumną lub dowolną inną kolumną. Utwórzmy ramkę danych.
Przykład
Tutaj utworzymy Pyspark DataFrame, który ma 5 kolumn: [„tematu_id”, „name”, „wiek”, „technologia1”, „technologia2”] z 10 wierszy.
Wyjście:
Funkcja okna Pyspark sum ()
Sum () w funkcji okna służy do zwrócenia całkowitej sumy wartości w każdej partycji. Tak więc możliwe jest zwrócenie sumy po partycjonowaniu ramki danych.
Składnia
DataFrame_Obj.withColumn („sum”, sum (col („kolumna”)).Over (partycja))Parametr:
sum (col („kolumna”))Tutaj suma() Funkcja bierze nazwę kolumny jako parametr. Zwraca więc sumę wartości w tej kolumnie w każdej partycji. Dodajemy wynik do kolumny sum withcoolumn () funkcjonować.
Przykład 1
Teraz mamy ramkę danych (utworzoną powyżej). Podzielmy go na podstawie kolumny technologii.
Wyjście:
Wyjaśnienie
Łączne partycje: 4
Partycja 1:
.Net wystąpiła dwa razy w pierwszej partycji. A suma wartości podmiotów podmiotów wynosi 46+46 = 92.
Partict 2:
Hadoop miał miejsce raz w drugim partycji. Więc suma to 12.
Partycja 3:
Oracle wystąpiła cztery razy w trzeciej partycji.
A suma wartości podmiotów podmiotowych wynosi 4+46+12+4 = 66.
Partycja 4:
PHP wystąpił trzy razy w czwartej partycji.
A suma wartości podmiotów podmiotów wynosi 4+4+4 = 12.
Przykład 2
Teraz mamy ramkę danych (utworzoną powyżej). Podzielmy go na podstawie kolumny Technology1 i uzyskaj całkowitą sumę wszystkich wartości w kolumnie wiekowej w każdej partycji.
Wyjście:
Wyjaśnienie
Łączne partycje: 4
Partycja 1:
.Net wystąpiła dwa razy w pierwszej partycji. A suma wartości wieku wynosi 22+22 = 92.
Partict 2:
Hadoop miał miejsce raz w drugim partycji. Więc suma to 22.
Partycja 3:
Oracle wystąpiła cztery razy w trzeciej partycji.
A suma wartości wieku wynosi 21+22+22+23 = 88.
Partycja 4:
PHP wystąpił trzy razy w czwartej partycji.
A suma wartości wieku wynosi 23+23+21 = 67.
Funkcja okna PYSPARK AVG ()
AVG () w funkcji okna służy do zwrócenia całkowitej średniej wartości w każdej partycji. Tak więc możliwe jest zwrócenie średniej po partycjonowaniu ramki danych.
Składnia
DataFrame_Obj.withColumn („średnia”, AVG (col („kolumna”)).Over (partycja))Parametr:
AVG (col („kolumna”))Tutaj, AVG () bierze nazwę kolumny jako parametr. Zwraca więc średnią wartości w tej kolumnie w każdej partycji. Dodajemy wynik do średniej kolumny za pomocą withcoolumn () funkcjonować.
Przykład 1
Teraz mamy ramkę danych (utworzoną powyżej). Podzielmy go na podstawie kolumny Technology1 i uzyskaj całkowitą średnią wszystkich wartości w kolumnie Temat_id w każdej partycji.
Wyjście:
Wyjaśnienie
Łączne partycje: 4
Partycja 1:
.Net wystąpiła dwa razy w pierwszej partycji. A średnia wartości podmiotów podmiotowych wynosi (46+46)/2 = 46.0.
Partict 2:
Hadoop miał miejsce raz w drugim partycji. Tak więc średnia wynosi 12.0.
Partycja 3:
Oracle wystąpiła cztery razy w trzeciej partycji.
A średnia wartości podmiotów podmiotowych wynosi (4+46+12+4)/4 = 16.5.
Partycja 4:
PHP wystąpił trzy razy w czwartej partycji.
A średnia wartości podmiotów podmiotów (4+4+4)/3 = 4.0.
Przykład 2
Teraz mamy ramkę danych (utworzoną powyżej). Podzielmy go na podstawie kolumny Technology1 i uzyskaj całkowitą średnią wszystkich wartości w kolumnie wiekowej w każdej partycji.
Wyjście:
Wyjaśnienie
Łączne partycje: 4
Partycja 1:
.Net wystąpiła dwa razy w pierwszej partycji. A średnia wartość wieku wynosi (22+22)/2 = 22.0.
Partict 2:
Hadoop miał miejsce raz w drugim partycji. A więc średnia to 22.0.
Partycja 3:
Oracle wystąpiła cztery razy w trzeciej partycji.
A średni wiek to (21+22+22+23)/4 = 22.0.
Partycja 4:
PHP wystąpił trzy razy w czwartej partycji.
A średnia wartość wieku wynosi (23+23+21)/3 = 22.333.
Wniosek
W tym samouczku partycjonowania PYSPARK widzieliśmy, jak zwrócić sumę wartości w każdym oknie partycjonowanym za pomocą suma() funkcja i średnie wartości w każdym partycjonowanym oknie za pomocą funkcji AVG (). Dodaliśmy wynik do istniejącej ramki danych jako nowej kolumny. Możliwe jest również uzyskanie średniej podobnej do AVG () funkcja za pomocą mieć na myśli(). Rzeczy znaczą import z Pyspark.SQL.Funkcje moduł i po prostu upewnij się, że musisz zaimportować sumę i średnią z tego samego modułu.