Konwertuj PYSPARK RDD na DataFrame

Konwertuj PYSPARK RDD na DataFrame
W Pythonie PySpark jest modułem iskry używanym do zapewnienia podobnego rodzaju przetwarzania, takiego jak Spark.

RDD oznacza odporne rozproszone zestawy danych. Możemy nazwać RDD podstawową strukturą danych w Apache Spark.

Składnia

Spark_App.SparkContext.równoległość (dane)

Możemy powiązać dane w formacie tabelarycznym. Zastosowana struktura danych to DataFrame.Format tabelaryczny oznacza, że ​​przechowuje dane w rzędach i kolumnach.

W PYSPARK możemy utworzyć ramkę danych z aplikacji Spark z metodą CreatedATAframe ().

Składnia

Spark_App.CreatedATAframe (input_data, kolumny)

Gdzie input_data może być słownikiem lub listą do utworzenia ramki danych z tych danych, a jeśli input_data jest listą słowników, kolumny nie są potrzebne. Jeśli jest to zagnieżdżona lista, musimy podać nazwy kolumn.

Omówmy teraz, jak przekonwertować PYSPARK RDD na DataFrame.

Tworzenie Pyspark RDD

W tym przykładzie utworzymy RDD o nazwie Studenci i wyświetlimy go za pomocą akcji zbiorów ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = Spark_App.SparkContext.równoległość (['rollno': '001', „nazwa”: „sravan”, „wiek”: 23, „high”: 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”])
#Display RDD za pomocą collect ()
Drukuj (uczniowie.zbierać())

Wyjście

[„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”]

Metoda 1: Za pomocą CreatedATAframe ()

Możliwe jest przekonwertowanie RDD na DataFrame z aplikacji Spark za pomocą metody CreatedATAframe (). Tutaj musimy przekazać RDD do tej metody.

Składnia

Spark_App.CreatedataFrame (input_rdd)

Gdzie input_rdd to RDD.

Przykład
W tym przykładzie konwertujemy uczniów - RDD na DataFrame przy użyciu metody CreatedATAframe ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = Spark_App.SparkContext.równoległość (['rollno': '001', „nazwa”: „sravan”, „wiek”: 23, „high”: 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”])
#Sprawdź typ uczniów
Drukuj (typ (studenci))
#Convert RDD do DataFrame
df = Spark_App.CreatedataFrame (studenci)
#Display the DataFrame
df.pokazywać()
#Sprawdź typ DF
print (typ (df))

Wyjście

Z powyższego wyjścia możemy zobaczyć, że uczniowie to RDD (wyświetlany przy użyciu typu) i po konwersji na DataFrame wyświetliliśmy metodę DataFrame za pomocą metody show () i do potwierdzenia, zwróciliśmy typ formy danych DataFrame.

Metoda 2: Za pomocą CreatedATAframe () ze schematem

StructType ()
Ta metoda służy do zdefiniowania struktury Pyspark DataFrame. Zaakceptuje listę typów danych wraz z nazwami kolumn dla danej ramki danych. Jest to znane jako schemat ramki danych. Przechowuje zbiór pól

Structfield ()
Ta metoda jest stosowana w metodzie structType () Pyspark DataFrame. Zaakceptuje nazwy kolumn za pomocą danych danych.

Składnia

schemat = structType ([
Structfield („kolumna 1”, danych, true/false),
Structfield („kolumna 2”, danych, true/false),
… ,
Structfield („kolumna n”, danych, true/false)]))

Gdzie schemat odnosi się do ramki danych po utworzeniu.

Parametry

  1. StructType akceptuje listę strukturów na liście oddzielonej przecinkiem.
  2. Structfield () służy do dodawania kolumn do ramki danych, która przyjmuje nazwy kolumn jako pierwszy parametr i danych danych poszczególnych kolumn jako drugi parametr.

Musimy użyć typów danych z metod importowanych z Pyspark.SQL.Moduł typów.

Obsługiwane typy danych to:

  • StringType () - Używany do przechowywania wartości ciągów
  • IntegerType () - Służy do przechowywania liczb całkowitych lub długich wartości liczb całkowitych
  • FloatType () - Służy do przechowywania wartości pływakowych
  • DubleType () - Służy do przechowywania podwójnych wartości
  1. Wartości logiczne jako trzeci parametr. Jeśli jest to prawdą, wówczas zostanie użyty dany typ danych, w przeciwnym razie nie jest to fałszywe.

Musimy przekazać ten schemat do metody DataFrame wraz z danymi.

Składnia

CreatedATAframe (dane, schema = schemat)

Składnia

Spark_App.CreatedataFrame (input_rdd)

Gdzie input_rdd to RDD.

Przykład
W tym przykładzie przekształcamy uczniów - RDD na DataFrame przy użyciu metody CreatedATAframe () z nazwami kolumn - Rollno, Nazwa, wiek, wysokość, waga i adres

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#i importuj typy struktur i typy danych
od Pyspark.SQL.Typy importuj struktury, structfield, stringType, IntegerType, FloatType
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = Spark_App.SparkContext.równoległość (['rollno': '001', „nazwa”: „sravan”, „wiek”: 23, „high”: 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”])
#Sprawdź typ uczniów
Drukuj (typ (studenci))
#określić strukturę i pola struktury
#dla poniższych nazw kolumn
schemat = structType ([
Structfield („Rollno”, StringType (), true),
Structfield („name”, stringtype (), true),
Structfield („wiek”, IntegerType (), true),
Structfield („wysokość”, floattype (), true),
Structfield („waga”, IntegerType (), true),
Structfield („Adres”, StringType (), true)
])
#Convert RDD do DataFrame
df = Spark_App.CreatedataFrame (studenci, schemat)
#Display the DataFrame
df.pokazywać()
#Sprawdź typ DF
print (typ (df))

Wyjście

Z powyższego wyjścia możemy zobaczyć, że uczniowie to RDD (wyświetlany przy użyciu typu) i po konwersji na DataFrame wyświetliliśmy metodę DataFrame za pomocą metody show () i do potwierdzenia, zwróciliśmy typ formy danych DataFrame.

Metoda 3: Zastosowanie TODF ()

todf () nie przyjmuje żadnego parametru i bezpośrednio przekształca go w ramkę danych.

Składnia

input_rdd.todf ()

Gdzie input_rdd to RDD.

Przykład
W tym przykładzie konwertujemy uczniów - RDD na DataFrame za pomocą metody TODF ().

#Wportu na moduł PYSPARK
Import Pyspark
#Import Sparksession do tworzenia sesji
od Pyspark.SQL Import Sparksession
# Importuj RDD z Pyspark.RDD
od Pyspark.RDD Import RDD
#Utworz aplikację o nazwie Linuxhint
Spark_App = Sparksession.budowniczy.AppName („Linuxhint”).getorCreate ()
# Utwórz dane ucznia z 5 wierszy i 6 atrybutów
studenci = Spark_App.SparkContext.równoległość (['rollno': '001', „nazwa”: „sravan”, „wiek”: 23, „high”: 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”])
#Sprawdź typ uczniów
Drukuj (typ (studenci))
#Convert RDD do DataFrame
DF = studenci.todf ()
#Display the DataFrame
df.pokazywać()
#Sprawdź typ DF
print (typ (df))

Wyjście

Z powyższego wyjścia możemy zobaczyć, że uczniowie to RDD (wyświetlany przy użyciu typu) i po konwersji na DataFrame wyświetliliśmy metodę DataFrame za pomocą metody show () i do potwierdzenia, zwróciliśmy typ formy danych DataFrame.

Wniosek

W tym samouczku PYSPARK widzieliśmy, jak przekonwertować PYSPARK RDD na PYSPARK DATAFRAME za pomocą metod CreatleATAFrame () i TODF (). Jeśli chcesz jawnie podać nazwy kolumn, możesz użyć drugiej metody w tym samouczku.