PYSPARK - Expr

PYSPARK - Expr
W Python PYSPARK to moduł Spark, który zapewnia podobny rodzaj przetwarzania, taki jak Spark za pomocą DataFrame. expr () w PYSPARK odnosi się do wyrażenia SQL używanego do wyodrębnienia danych poprzez wykonanie niektórych operacji. expr () może być używane w wielu scenariuszach.

Rzeczywista składnia

Expr (wyrażenie SQL)

Wymaga wyrażenia SQL i wykonuje niektóre operacje w wyrażeniu.

Omówmy to jeden po drugim. Wcześniej musimy utworzyć PYSPARK DATAFRAME do demonstracji."

Przykład
Utworzymy ramkę danych z 5 rzędami i 6 kolumnami i wyświetlimy ją za pomocą metody show ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = [„Rollno”: „001”, „nazwa”: „Sravan”, „wiek”: 23, „wysokość”: 5.79, „waga”: 67, „Adres”: „Guntur”,
„Rollno”: „002”, „nazwa”: „Ojaswi”, „wiek”: 16, „wysokość”: 3.79, „waga”: 34, „Adres”: „Hyd”,
„Rollno”: „003”, „nazwa”: „Gnanesh Chowdary”, „wiek”: 7, „wysokość”: 2.79, „waga”: 17, „Adres”: „Patna”,
„Rollno”: „004”, „Nazwa”: „Rohith”, „wiek”: 9, „wysokość”: 3.69, „waga”: 28, „Adres”: „hyd”,
„Rollno”: „005”, „nazwa”: „Sridevi”, „wiek”: 37, „wysokość”: 5.59, „waga”: 54, „Adres”: „Hyd”]
# Utwórz ramkę danych
df = Spark_App.CreatedataFrame (studenci)
#Display DataFrame
df.pokazywać()

Wyjście

Scenariusz 1: Połączenie jednej lub więcej kolumn

W tym scenariuszu połączymy jedną lub więcej kolumn w Pyspark DataFrame za pomocą expr ().

Wykorzystuje metodę WHIOLMUNM () do utworzenia nowej nazwy kolumny dla kolumn Conatenate.

Składnia

ramka danych.withColumn („kolumn_name”, wyrażenie)

Parametry
Wymaga dwóch parametrów.

  1. Pierwsza to nazwa kolumny używana jako nazwa kolumny dla połączonych kolumn
  2. Wyrażenie powstaje za pomocą expr () do łączenia kolumn.

Tutaj wyrażenie to:

expr („separator kolumny

Tutaj kolumna odnosi się do nazw kolumn, które mają być połączone z separatorem między nimi. Może to być dowolna postać, podobnie jak postacie specjalne.

Przykład
W tym przykładzie łączymy trzy kolumny - Rzuć No Name and Adres oddzielone „ -”, a nazwa kolumny tych połączonych kolumn to: „Rollno z nazwą i adresem."

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = [„Rollno”: „001”, „nazwa”: „Sravan”, „wiek”: 23, „wysokość”: 5.79, „waga”: 67, „Adres”: „Guntur”,
„Rollno”: „002”, „nazwa”: „Ojaswi”, „wiek”: 16, „wysokość”: 3.79, „waga”: 34, „Adres”: „Hyd”,
„Rollno”: „003”, „nazwa”: „Gnanesh Chowdary”, „wiek”: 7, „wysokość”: 2.79, „waga”: 17, „Adres”: „Patna”,
„Rollno”: „004”, „Nazwa”: „Rohith”, „wiek”: 9, „wysokość”: 3.69, „waga”: 28, „Adres”: „hyd”,
„Rollno”: „005”, „nazwa”: „Sridevi”, „wiek”: 37, „wysokość”: 5.59, „waga”: 54, „Adres”: „Hyd”]
# Utwórz ramkę danych
df = Spark_App.CreatedataFrame (studenci)
#Concate Rollno, Nazwa i kolumny adresowe uaing expr ()
df.withColumn („Rollno z nazwą i adresem”, expr („Rollno ||”-'|| Nazwa ||'-'|| Adres ")))).pokazywać()

Wyjście

Widzimy, że kolumny Rollno, Nazwa i adresy są połączone z separatorem „-”.

Scenariusz 2: Dodaj nową kolumnę na podstawie warunków

Tutaj użyjemy expr (), aby określić warunki w nim i, wraz z withColumn (), aby przypisać wartości z warunków zwróconych w nowej kolumnie.

Możemy określić warunki za pomocą przypadku, kiedy

Struktura

Przypadek, kiedy
NASTĘPNIE
Przypadek, kiedy
NASTĘPNIE


W PRZECIWNYM RAZIE
KONIEC

Wewnątrz, kiedy musimy zapewnić stan i wewnątrz, musimy wykonać akcję.

Jeśli warunek wewnątrz jest prawdziwy, blok jest wykonywany. Jeśli się nie powiedzie, trafia do bloku i końca.

To warunkowe stwierdzenie jest dostarczane wewnątrz Expr () jako wyrażenie SQL.

Składnia

ramka danych.withColumn („kolumna”, expr („przypadek, gdy warunek

Gdzie,

  1. Kolumna to nowa kolumna, która jest utworzona, a wartości są przypisywane na podstawie warunków w tej kolumnie
  2. expr () bierze przypadek, gdy logika warunkowa

Przykład
W tym przykładzie tworzymy nową kolumnę - „Ulepszona wysokość” i przypisujemy do niej wartości na podstawie następujących warunków zastosowanych do kolumny wysokości.

Jeśli wysokość jest większa niż 5 - Przypisz 10 w kolumnie ulepszonej wysokości na nim.

Jeśli wysokość jest mniejsza niż 5 - Przypisz 5 w kolumnie ulepszonej wysokości na nim.

W przeciwnym razie zaktualizuj kolumnę wysokości do 7 w całym wierszach.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = [„Rollno”: „001”, „nazwa”: „Sravan”, „wiek”: 23, „wysokość”: 5.79, „waga”: 67, „Adres”: „Guntur”,
„Rollno”: „002”, „nazwa”: „Ojaswi”, „wiek”: 16, „wysokość”: 3.79, „waga”: 34, „Adres”: „Hyd”,
„Rollno”: „003”, „nazwa”: „Gnanesh Chowdary”, „wiek”: 7, „wysokość”: 2.79, „waga”: 17, „Adres”: „Patna”,
„Rollno”: „004”, „Nazwa”: „Rohith”, „wiek”: 9, „wysokość”: 3.69, „waga”: 28, „Adres”: „hyd”,
„Rollno”: „005”, „nazwa”: „Sridevi”, „wiek”: 37, „wysokość”: 5.59, „waga”: 54, „Adres”: „Hyd”]
# Utwórz ramkę danych
df = Spark_App.CreatedataFrame (studenci)
Kolumna #In wysokości
#if Wysokość jest większa niż 5 - Przypisz 10 w kolumnie ulepszonej wysokości
#if Wysokość jest mniejsza niż 5 - Przypisz 5 w kolumnie ulepszonej wysokości
#Insterise zaktualizowana kolumna wysokości jako 7 w poprzek wierszy
df.withColumn („Ulepszona wysokość”, expr („obudowa When Wysokość> 5, a następnie 10" +"When Wysokość <5 THEN 5 ELSE 7 END")).show()

Wyjście

Widzimy, że wartości są przydzielane w kolumnie „Ulepszona wysokość” w oparciu o warunki.

Scenariusz 3: Wykonaj operacje arytmetyczne

Możliwe jest wykonanie operacji arytmetycznych, takich jak dodanie, odejmowanie, mnożenie i podział z istniejącymi kolumnami za pomocą expr ().

Tutaj Expr () można użyć z klauzulą ​​Wybierz, aby wyświetlić zaktualizowane kolumny.

Składnia

ramka danych.Wybierz (expr („wyrażenie”))

Wyrażenie służy do wykonywania operacji arytmetycznych, które mogą być:

„Kolumna ARITHMETIC_OPERATOR WARTOŚCI AS NEW_COOLUMN”

Kolumna to nazwa kolumny, w której możemy wykonywać operacje arytmetyczne; Wartość to liczba dodana do każdego wiersza w kolumnie, a New_Column to nazwa kolumny, która przechowuje wynik.

Przykład
W tym przykładzie wykonamy dwie operacje arytmetyczne - dodanie i odejmowanie w kolumnie wiekowej.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = [„Rollno”: „001”, „nazwa”: „Sravan”, „wiek”: 23, „wysokość”: 5.79, „waga”: 67, „Adres”: „Guntur”,
„Rollno”: „002”, „nazwa”: „Ojaswi”, „wiek”: 16, „wysokość”: 3.79, „waga”: 34, „Adres”: „Hyd”,
„Rollno”: „003”, „nazwa”: „Gnanesh Chowdary”, „wiek”: 7, „wysokość”: 2.79, „waga”: 17, „Adres”: „Patna”,
„Rollno”: „004”, „Nazwa”: „Rohith”, „wiek”: 9, „wysokość”: 3.69, „waga”: 28, „Adres”: „hyd”,
„Rollno”: „005”, „nazwa”: „Sridevi”, „wiek”: 37, „wysokość”: 5.59, „waga”: 54, „Adres”: „Hyd”]
# Utwórz ramkę danych
df = Spark_App.CreatedataFrame (studenci)
#ADD 10 do wiekowego kolumny
df.Wybierz (DF.wiek, expr („wiek + 10 jako wiek_after_10”)).pokazywać()
#Subtract 10 z kolumny wiekowej
df.Wybierz (DF.wiek, expr („wiek - 10 jako AGE_BEFOR_10”)).pokazywać()

Wyjście

W operacji dodawania dodajemy 10 do kolumny wiekowej i przechowujemy w kolumnie „Age_after_10”.

W operacji odejmowania odejmujemy 10 od kolumny wiekowej i przechowujemy ją w kolumnie „Age_before_10”.

Wniosek

W tym samouczku Pyspark widzieliśmy, jak używać expr () w trzech różnych scenariuszach. Może być stosowany do wyrażeń warunkowych, może być używany do wykonywania operacji arytmetycznych i może być używany do połączenia wielu kolumn.