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
- StructType akceptuje listę strukturów na liście oddzielonej przecinkiem.
- 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
- 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.