PYSPARK - FILTR

PYSPARK - FILTR
W Python PYSPARK to moduł Spark używany do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark za pomocą DataFrame. W Pyspark, filtr() służy do filtrowania wierszy w ramce danych. Zwróci nową ramkę danych, filtrując wiersze w istniejącej ramce danych. Wykazamy cztery sposoby korzystania z filtr() Funkcja w tym artykule:
  1. Metoda - 1: Filter () z operatorami relacyjnymi
  2. Metoda - 2: Filter () z operatorami relacyjnymi przy użyciu funkcji col
  3. Metoda - 3: Filter () z operatorami relacyjnymi w wielu warunkach
  4. Metoda - 4: Filter () z wyrażeniem SQL

Najpierw utwórzmy Pyspark DataFrame, którego możemy użyć dla przykładów.

Przykład:

W tym przykładzie utworzymy Pyspark DataFrame z 5 wierszy i 6 kolumnami i wyświetlacz za pomocą metody show ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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:

Metoda - 1: Filter () z operatorami relacyjnymi

Tutaj używamy funkcji Filter () do filtrowania Pyspark DataFrame z operatorami relacyjnymi, takimi jak>, < . == etc.

Składnia:

ramka danych.Filtr (DataFrame.Wartość operatora nazwy kolumnowej)

Tutaj Filter () akceptuje trzy parametry.

  1. ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
  2. Operator jest operatorem relacyjnym.
  3. Wartość to wartość ciągu/liczbowa w porównaniu z wartościami kolumn.

Przykład:

W tym przykładzie przefiltrujemy ramkę danych na podstawie kolumn wiekowych, wysokości, wagi i nazwy z różnymi operatorami relacyjnymi i wyświetlaj filtrowane rzędy za pomocą metody kolekcji ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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
#Filtrowanie wieku jako 23
Wydrukuj (DF.Filtr (DF.Wiek == 23).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Wysokość filtrowania jako 2.79
Wydrukuj (DF.Filtr (DF.Wysokość == 2.79).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie wagi większej niż 30
Wydrukuj (DF.Filtr (DF.waga> 30).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie nazwy jako Sravan
Wydrukuj (DF.Filtr (DF.name == 'sravan').zbierać())

Wyjście:

[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]
---------------------------
[Wiersz (adres = „patna”, wiek = 7, wysokość = 2.79, name = "Gnanesh Chowdary", Rollno = "003", waga = 17)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67), wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34), wiersz (adres = „hyd”, wiek = 37, wysokość = 5.59, name = "Sridevi", Rollno = "005", waga = 54)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]

Metoda - 2: Filter () z operatorami relacyjnymi przy użyciu funkcji col

Tutaj używamy funkcji Filter () do filtrowania Pyspark DataFrame z operatorami relacyjnymi, takimi jak>, < . == etc. through col function.

Składnia:

ramka danych.Filtr (col („kolumn_nazwa”) wartość operatora)

Tutaj, gdzie () akceptuje trzy parametry.

  1. ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
  2. Operator jest operatorem relacyjnym.
  3. Wartość to wartość ciągu/liczbowa w porównaniu z wartościami kolumn.

Przykład:

W tym przykładzie przefiltrujemy ramkę danych na podstawie kolumn wiekowych, wysokości, wagi i nazwy z różnymi operatorami relacyjnymi i wyświetlaj filtrowane rzędy za pomocą metody kolekcji ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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
#Filtrowanie wieku jako 23
Wydrukuj (DF.filtr (col („wiek”) == 23).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Wysokość filtrowania jako 2.79
Wydrukuj (DF.filtr (col („wysokość”) == 2.79).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie wagi większej niż 30
Wydrukuj (DF.Filtr (col („waga”)> 30).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie nazwy jako Sravan
Wydrukuj (DF.filtr (col („name”) == 'sravan').zbierać())

Wyjście:

[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]
---------------------------
[Wiersz (adres = „patna”, wiek = 7, wysokość = 2.79, name = "Gnanesh Chowdary", Rollno = "003", waga = 17)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67), wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34), wiersz (adres = „hyd”, wiek = 37, wysokość = 5.59, name = "Sridevi", Rollno = "005", waga = 54)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]

Metoda - 3: Filter () z operatorami relacyjnymi w wielu warunkach

Tutaj używamy funkcji Filter () do filtrowania Pyspark DataFrame z operatorami relacyjnymi, takimi jak>, < . == etc with multiple conditions.

Składnia:

ramka danych.Filtr ((konditin1) operator (warunek2)… .)

Tutaj Filter () akceptuje trzy parametry.

  1. ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
  2. Operator jest operatorem relacyjnym.
  3. Wartość to wartość ciągu/liczbowa w porównaniu z wartościami kolumn.
  4. Warunek określa - (DataFrame.Wartość operatora nazwy kolumnowej).

Przykład:

W tym przykładzie przefiltrujemy ramkę danych na podstawie kolumny wiekowej z lub (|) oraz (&) operatorem i wyświetli się filtrowane rzędy za pomocą metody kolekcji ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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
#od filtrowania wieku większego niż 10 i mniej niż 21
Wydrukuj (DF.filtr ((DF.Wiek> 10) i (DF.wiek <21)).collect())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie wiek większy niż 10 lub mniej niż 21
Wydrukuj (DF.filtr ((DF.Wiek> 10) | (DF.wiek <21)).collect())

Wyjście:

[Wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67), wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34), wiersz (adres = „patna”, wiek = 7, wysokość = 2.79, name = "Gnanesh Chowdary", Rollno = "003", waga = 17), wiersz (adres = „hyd”, wiek = 9, wysokość = 3.69, name = "rohith", rollno = "004", waga = 28), wiersz (adres = „hyd”, wiek = 37, wysokość = 5.59, name = "Sridevi", Rollno = "005", waga = 54)]

Metoda - 4: Filter () z wyrażeniem SQL

Tutaj używamy funkcji Filter () do filtrowania Pyspark DataFrame z wyrażeniem SQL. Warunek jest otoczony „”. Możemy jednak określić operatora relacyjnego jako warunek.

Składnia:

ramka danych.filtr („DataFrame.Wartość operatora nazwy kolumnowej ”)

Tutaj Filter () akceptuje trzy parametry.

  1. ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
  2. Operator jest operatorem relacyjnym.
  3. Wartość to wartość ciągu/liczbowa w porównaniu z wartościami kolumn.

Przykład:

W tym przykładzie przefiltrujemy ramkę danych na podstawie kolumn wiekowych, wysokości, wagi i nazwy z różnymi operatorami relacyjnymi i wyświetlaj filtrowane rzędy za pomocą metody kolekcji ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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
#Filtrowanie wieku jako 23
#Sing SQL Expression
Wydrukuj (DF.filtr („wiek == 23”).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Wysokość filtrowania jako 2.79
#Sing SQL Expression
Wydrukuj (DF.filtr ("wysokość == 2.79 ").zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie wagi większej niż 30
#Sing SQL Expression
Wydrukuj (DF.Filtr („waga> 30”).zbierać())
wydrukować("---------------------------")
#Display DataFrame
#Filtrowanie nazwy jako Sravan
#Sing SQL Expression
Wydrukuj (DF.filtr („name == 'sravan'").zbierać())

Wyjście:

[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]
---------------------------
[Wiersz (adres = „patna”, wiek = 7, wysokość = 2.79, name = "Gnanesh Chowdary", Rollno = "003", waga = 17)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67), wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34), wiersz (adres = „hyd”, wiek = 37, wysokość = 5.59, name = "Sridevi", Rollno = "005", waga = 54)]
---------------------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]

Metoda - 4: Filter () z metodami String

Tutaj używamy funkcji Filter () do filtrowania Pyspark DataFrame za pomocą metod String. Są one stosowane w kolumnach, których danych danych to ciąg. Oni są:

zaczynać z() - Sprawdź znak początkowy w podanych danych

Składnia:

ramka danych.Filtr (DataFrame.Nazwa kolumny.Startswith („Charakter”)

Tutaj Nazwa kolumny to kolumna, w której stosuje się filtrowanie, w którym wartość zaczyna się od danego znaku.

ENDSWITH () - Sprawdź znak końcowy w danych danych.

Składnia:

ramka danych.Filtr (DataFrame.Nazwa kolumny.ENDSWITH („Charakter”)

Tutaj Nazwa kolumny to kolumna, w której stosuje się filtrowanie, gdzie wartość kończy się danym znakiem.

zawiera() - Sprawdź, czy znak zawiera w danych danych.

Składnia:

ramka danych.Filtr (DataFrame.Nazwa kolumny.zawiera („Charakter”)

Tutaj Nazwa kolumny to kolumna, w której stosuje się filtrowanie, w którym wartość zawiera z danym znakiem.

Przykład:

W tym przykładzie będziemy filtrować na podstawie kolumny adresu.

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
#Wportu na funkcję col
od Pyspark.SQL.Funkcje importuj col
#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
#adres filtrowania
#Starts z „H”
Wydrukuj (DF.Filtr (DF.adres.startswith („h”)).zbierać())
wydrukować("-----------------")
#Display DataFrame
#adres filtrowania
#ends z „r”
Wydrukuj (DF.Filtr (DF.adres.ENDSWITH („R”)).zbierać())
wydrukować("-----------------")
#Display DataFrame
#adres filtrowania
#comntains „tu”
Wydrukuj (DF.Filtr (DF.adres.zawiera („R”)).zbierać())

Wyjście:

[Wiersz (adres = „hyd”, wiek = 16, wysokość = 3.79, name = "Ojaswi", Rollno = "002", waga = 34), wiersz (adres = „hyd”, wiek = 9, wysokość = 3.69, name = "rohith", rollno = "004", waga = 28), wiersz (adres = „hyd”, wiek = 37, wysokość = 5.59, name = "Sridevi", Rollno = "005", waga = 54)]
-----------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]
-----------------
[Wiersz (adres = „guntur”, wiek = 23, wysokość = 5.79, name = "Sravan", Rollno = "001", waga = 67)]

Wniosek

W tym artykule omówiliśmy, jak użyć funkcji Filter () z kilkoma metodami na Pyspark DataFrame w Python. I uwzględniliśmy również wszystkie warunki z wyrażeniami SQL.