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:
- Metoda - 1: Filter () z operatorami relacyjnymi
- Metoda - 2: Filter () z operatorami relacyjnymi przy użyciu funkcji col
- Metoda - 3: Filter () z operatorami relacyjnymi w wielu warunkach
- 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.
- ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
- Operator jest operatorem relacyjnym.
- 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.
- ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
- Operator jest operatorem relacyjnym.
- 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.
- ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
- Operator jest operatorem relacyjnym.
- Wartość to wartość ciągu/liczbowa w porównaniu z wartościami kolumn.
- 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.
- ramka danych.Kolumna_nazwa to kolumna, w której stosuje się filtrowanie.
- Operator jest operatorem relacyjnym.
- 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.