PYSPARK - SQL dołącza

PYSPARK - SQL dołącza
W Python PYSPARK to moduł Spark używany do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark za pomocą DataFrame.

W PYSPARK połączenia SQL są używane do łączenia dwóch lub więcej ram danych w oparciu o dany warunek. Musimy tylko przekazać zapytanie SQL, aby wykonać różne połączenia na Pyspark DataFrame. Iskra.SQL () służy do wykonywania połączenia SQL w Pyspark. Wcześniej musimy utworzyć tymczasowy widok dla dwóch PYSPARK DATAFrame przy użyciu metody CreateorRepceTempview (). W tym widoku możemy wykonać połączenia SQL.

Składnia:

ramka danych.createORREPLACETEMPVIEW („view_name”)

Gdzie:

  1. DataFrame to Pyspark DataFrame.
  2. View_name to tymczasowa nazwa danych danych.

Istnieją różne połączenia, które są stosowane na dwóch Pyspark DataFrame. Przed poznaniem tych typów stwórzmy dwie PYSPARK DATAMEFrame.

Pierwsza ramka danych:

W poniższym przykładzie utworzymy Pyspark DataFrame z 5 wierszy i 6 kolumn z danymi osobowymi uczniami i wyświetlaniem przy użyciu 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)
# ramka danych
df.pokazywać()

Wyjście:

Druga ramka danych

W poniższym przykładzie utworzymy Pyspark DataFrame z 5 wierszy i 3 kolumnami z danymi i wyświetlaniem znaków uczniów przy użyciu 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 Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# ramka danych
DF2.pokazywać()

Wyjście:

Obserwacja:

Z dwóchframów danych zaobserwowaliśmy, że Rollno jest kolumną powszechną w obu ramach danych. Możemy więc zastosować warunek do tej kolumny. Rzędy - 001, 002, 004 i 005 - pasują do obu ram danych.

Wewnętrzne dołączenie

Wyniki połączenia wewnętrznego w ramce danych, wybierając tylko pasujące rzędy z dwóch ramek danych.
Użyte słowo kluczowe jest „wewnętrzne”, które jest domyślnym połączeniem.

Składnia:

iskra.SQL (wybierz * z V1 Inner Join V2 na v1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Nazwa_polution to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W tym przykładzie używamy słowa kluczowego łączenia wewnętrznego, aby dołączyć do obu ramek danych. Wynik będzie to 001, 002, 004 i 005 wierszy. Ponieważ są one powszechne w obu ramach danych w kolumnie Rollno. Wreszcie, stosujemy metodę show () do wyświetlania połączonego Pyspark DataFrame.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj wewnętrzny dołączenie
iskra.SQL („Wybierz * Ze Student Inner Join Marks on Student.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Lewy dołącz

Wyniki połączeń w lewo w wynikach danych, wybierając wszystkie wiersze z pierwszej ramki danych i dopasowując tylko wiersze z drugiej ramki danych w odniesieniu do wierszy w pierwszej ramce danych.

Składnia:

iskra.SQL (wybierz * z v1 lewy połączenie v2 na v1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W tym przykładzie używamy słowa kluczowego lewego łączenia, aby dołączyć do obu ramek danych. Wynik będzie to 001 002, 003, 004 i 005 wierszy z pierwszej formy danych i 001, 002, 004 i 005 z drugiej ramy danych. Rząd 007 w drugiej ramce danych nie jest dopasowany do żadnego z wierszy w pierwszej ramce danych. Tak więc NULL zostanie dodany w tym rzędzie. Wreszcie, stosujemy metodę show () do wyświetlania połączonego Pyspark DataFrame.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj lewy dołączenie
iskra.SQL („Wybierz * od studenta po lewej ślady na studenta.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Lewe zewnętrzne połączenie

Lewe wyniki połączenia zewnętrznego w ramce danych, wybierając wszystkie wiersze z pierwszej ramki danych i dopasowując tylko wiersze z drugiej ramki danych w odniesieniu do wierszy w pierwszej ramce danych. Jest podobny do lewego połączenia.

Składnia:

iskra.SQL (wybierz * z v1 lewej zewnętrznej połączenia V2 na v1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:
W tym przykładzie używamy słowa kluczowego z lewym zewnętrznym połączeniem, aby dołączyć do obu ramek danych. Wynik będzie to 001, 002, 003, 004 i 005 wierszy z pierwszej ramki danych i 001, 002, 004 i 005 z drugiej ramki danych. Rząd 007 w drugiej ramce danych nie jest dopasowany do żadnego wiersza w pierwszej ramce danych. Tak więc NULL zostanie dodany w tym rzędzie. Wreszcie, stosujemy metodę show () do wyświetlania połączonego Pyspark DataFrame.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj lewe zewnętrzne połączenie
iskra.SQL („Wybierz * od studenta lewej zewnętrznej ślady łączenia studenckiego.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Prawe dołącz

PRAWA WYNIKAJ WYNIKI W RAME DATAFRAME, wybierając wszystkie wiersze z drugiej ramki danych i dopasowując tylko wiersze z pierwszej ramki danych w odniesieniu do wierszy w drugiej ramce danych. Zamawia się zero Wartości dla niezrównanych wierszy w pierwszej ramce danych.

Składnia:

iskra.SQL (wybierz * z V1 Right dołącz v2 na v1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W tym przykładzie używamy odpowiedniego słowa kluczowego, aby dołączyć do obu danych danych. Wynik będzie to 001, 002, 007, 004 i 005 wierszy z drugiej ramki danych i 001, 002, 004 i 005 z pierwszej ramki danych. Rząd 003 w pierwszej ramce danych nie jest dopasowany do żadnego wiersza w drugiej ramce danych. Tak więc NULL zostanie dodany w tym rzędzie. Wreszcie, stosujemy metodę show () do wyświetlania połączonego Pyspark DataFrame.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj prawnie dołącz
iskra.SQL („Wybierz * Ze Student Right Dołącz do Studenta.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Właściwe połączenie zewnętrzne

Właściwe wyniki połączenia zewnętrznego w ramce danych, wybierając wszystkie wiersze z drugiej ramki danych i dopasowując tylko wiersze z pierwszej ramki danych w odniesieniu do wierszy w drugiej ramce danych. Zamawia się zero Wartości dla niezrównanych wierszy w pierwszej ramce danych. Jest podobny do właściwego połączenia.

Składnia:
iskra.SQL (wybierz * Z prawego V1 Zewnętrznego połączenia V2 na V1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W tym przykładzie używamy właściwego zewnętrznego słowa kluczowego łączenia, aby dołączyć do obu ramek danych. Wynik będzie to 001, 002, 007, 004 i 005 wierszy z drugiej ramki danych i 001, 002, 004 i 005 z pierwszej ramki danych. Rząd 003 w pierwszej ramce danych nie jest dopasowany do żadnego wiersza w drugiej ramce danych. Tak więc NULL zostanie dodany w tym rzędzie. Wreszcie, stosujemy metodę show () do wyświetlania połączonego Pyspark DataFrame.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj właściwe połączenie zewnętrzne
iskra.SQL („Wybierz * Z ucznia prawe zewnętrzne znaki dołączające do Studenta.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Pełny dołącz

Pełne wyniki połączenia w ramce danych, wybierając wszystkie wiersze z obu ram danych. Zamawia się zero Wartości dla niezrównanych wierszy w obu ramach danych w ramach wierszy.

Składnia:

iskra.SQL (wybierz * z V1 Full Join V2 na v1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W poniższym przykładzie używamy pełnego słowa kluczowego, aby dołączyć do obu danych danych. Tak więc wynik będzie z obu ram danych.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj pełny dołącz
iskra.SQL („Wybierz * od studentów pełne znaki dołączające do studenta.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Pełne połączenie zewnętrzne

Pełne wyniki połączenia zewnętrznego w ramce danych, wybierając wszystkie wiersze z ramek danych. Zamawia się zero Wartości dla niezrównanych wierszy w obu ramach danych w ramach wierszy.

Składnia:

iskra.SQL (wybierz * z pełnego zewnętrznego połączenia V1 V1 na V1.kolumna_nazwa == v2.Nazwa kolumny)

Gdzie:

  1. * odnosi się do wyboru wszystkich kolumn z obu ram danych.
  2. V1 odnosi się do tymczasowego widoku pierwszej strumienia danych.
  3. v2 odnosi się do tymczasowego widoku drugiej ramy danych.
  4. Kolumna_nazwa to kolumna, która istnieje wspólne (wspólne wiersze) w obu ramach danych. (Na podstawie tej kolumny wykonamy operację łączenia)

Przykład:

W tym przykładzie używamy pełnego zewnętrznego słowa kluczowego łączenia, aby dołączyć do obu danych danych. Tak więc wynik będzie z obu ram danych.

#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)
# Utwórz dane Student_Marks z 5 wierszy i 6 atrybutów
studenci_marks = [„Rollno”: „001”, „Temat1”: 78, „Temat2”: 98,
„Rollno”: „002”, „Temat1”: 83, „Temat2”: 69,
„Rollno”: „005”, „Temat1”: 95, „Temat2”: 90,
„Rollno”: „004”, „Temat1”: 76, „Temat2”: 100,
„Rollno”: „007”, „Temat1”: 90, „Temat2”: 91]
# Utwórz ramkę danych
DF2 = Spark_App.CreatedataFrame (studenci_marks)
# Utwórz widok dla DF z nazwiskami jako student
df.CreateorReplaceTempview („Student”)
# Utwórz widok dla DF2 z nazwami jako znaki
DF2.CreateorReplaceTempview („Marks”)
# Wykonaj pełne połączenie zewnętrzne
iskra.SQL („Wybierz * Z studenta Full Outer Tun Marks on Student.Rollno == Znaki.Rollno ”).pokazywać()

Wyjście:

Wniosek

W tym artykule omówiliśmy cztery typy połączeń SQL wykonanych na Pyspark DataFrame. Widzieliśmy, że lewy połączenie jest podobne do lewego zewnętrznego połączenia; Prawe połączenie jest podobne do prawego połączenia zewnętrznego; Pełne połączenie jest podobne do pełnego zewnętrznego połączenia. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i samouczków.