Wprowadzenie do Spark DataFrame
Ramkę danych Spark można powiedzieć, że jest rozproszoną kolekcją danych, która jest zorganizowana w nazwane kolumny i jest również używana do zapewnienia takich operacji, jak filtrowanie, obliczanie agregacji, grupowanie, a także może być używana z Spark SQL. Ramki danych można tworzyć przy użyciu plików danych strukturalnych, wraz z istniejącymi RDD, zewnętrznymi bazami danych i tabelami Hive. Jest w zasadzie określany i znany jako warstwa abstrakcji, która jest zbudowana na RDD, a za nim znajduje się także interfejs API zestawu danych, który został wprowadzony w późniejszych wersjach Spark (2.0 +). Ponadto zestawy danych nie zostały wprowadzone w Pyspark, ale tylko w Scali z Spark, ale nie było tak w przypadku ramek danych. Ramki danych popularnie zwane DF to logiczne formaty kolumnowe, dzięki którym praca z RDD jest łatwiejsza i wygodniejsza, a także korzystanie z tych samych funkcji co RDD w ten sam sposób. Jeśli mówisz więcej na poziomie koncepcyjnym, jest to równoważne tabelom relacyjnym wraz z dobrymi funkcjami i technikami optymalizacji.
Jak utworzyć ramkę danych?
Ramka danych jest generalnie tworzona za pomocą dowolnej z wymienionych metod. Można go utworzyć przy użyciu tabel Hive, zewnętrznych baz danych, plików danych strukturalnych lub nawet w przypadku istniejących RDD. Te wszystkie sposoby umożliwiają utworzenie nazwanych kolumn zwanych ramkami danych wykorzystywanymi do przetwarzania w Apache Spark. Korzystając z SQLContext lub SparkSession, aplikacje mogą być używane do tworzenia ramek danych.
Spark Operacje DataFrames
W Spark ramka danych to dystrybucja i zbieranie zorganizowanej formy danych do nazwanych kolumn, która jest równoważna relacyjnej bazie danych lub schematu lub ramce danych w języku takim jak R lub python, ale wraz z bogatszym poziomem optymalizacji być stosowane. Służy do zapewnienia określonego rodzaju domeny w języku, który może być wykorzystywany do manipulacji danymi strukturalnymi.
Poniżej wymieniono niektóre podstawowe operacje przetwarzania danych strukturalnych przy użyciu ramek danych.
1. Czytanie dokumentu typu: JSON: Korzystamy z polecenia sqlContext.read.json.
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:val dfs= sqlContext.read.json(“student.json”)
Dane wyjściowe: w tym przypadku dane wyjściowe będą takie, że nazwy pól zostaną automatycznie pobrane z pliku student.json.
2. Wyświetlanie danych: Aby zobaczyć dane w ramkach danych Spark, musisz użyć polecenia:
dfs.show ()
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:val dfs= sqlContext.read.json(“student.json”)
dfs.show()
Wynik : dane studenta zostaną przedstawione w formie tabelarycznej.
3. Przy użyciu metody printSchema: Jeśli chcesz zobaczyć strukturę, tj. Schemat ramki danych, skorzystaj z następującego polecenia: dfs.printSchema ()
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:
val dfs= sqlContext.read.json(“student.json”)
dfs. printSchema ()
Dane wyjściowe: struktura lub schemat będą dostępne
4. Użyj metody select: Aby użyć metody select, do pobrania nazw i kolumn z listy ramek danych zostanie użyte następujące polecenie.
dfs.select („nazwa kolumny”). show ()
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:val dfs= sqlContext.read.json(“student.json”)
dfs.select(“name”).show()
Dane wyjściowe: można zobaczyć wartości kolumny nazwy.
5. Korzystanie z filtra wiekowego: Aby znaleźć grupę uczniów w wieku powyżej 23 lat, można użyć następującego polecenia.
dfs.filter (dfs („nazwa kolumny”)> wartość) .show ()
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:val dfs= sqlContext.read.json(“student.json”)
dfs.filter(dfs(“age”)>23).show()
Wynik : przefiltrowany wiek dla więcej niż 23 pojawi się w wynikach.
6. Korzystanie z metody groupBy: Następująca metoda może być wykorzystana do zliczenia liczby uczniów w tym samym wieku.
dfs.groupBy („nazwa kolumny”). count (). show ()
Przykład: Załóżmy, że nasza nazwa pliku to student.json, wówczas nasz fragment kodu będzie wyglądał następująco:val dfs= sqlContext.read.json(“student.json”)
dfs.groupBy(“age”).count().show()
7. Użycie funkcji SQL na SparkSession, która umożliwia programowi programowe wykonywanie zapytań typu SQL, a zatem zwraca wynik w postaci ramki danych.
spark.sql (zapytanie)
Przykład: Załóżmy, że musimy zarejestrować ramkę danych SQL jako widok tymczasowy, a następnie:df.createOrReplaceTempView(“student”)
sqlDF=spark.sql(“select * from student”)
sqlDF.show()
Dane wyjściowe: tymczasowy widok zostanie utworzony na podstawie nazwiska ucznia, a na nim zostanie nałożony spark.sql w celu konwersji go do ramki danych.
8. Korzystanie z funkcji SQL podczas sesji Spark dla globalnego widoku tymczasowego: Umożliwia aplikacji programowe wykonywanie zapytań typu SQL, a tym samym zwraca wynik w postaci ramki danych.
spark.sql (zapytanie)
Przykład: Załóżmy, że musimy zarejestrować ramkę danych SQL jako widok tymczasowy, a następnie:df.createGlobalTempView(“student”)
park.sql(“select * from global_temp.student”).show()
spark.newSession().sql(“Select * from global_temp.student”).show()
Dane wyjściowe: tymczasowy widok zostanie utworzony na podstawie nazwiska ucznia, a na nim zostanie nałożony spark.sql w celu konwersji go do ramki danych.
Zalety Spark DataFrame
- Ramka danych jest rozproszonym zbiorem danych, dlatego dane są uporządkowane według nazwanej kolumny.
- Są one mniej więcej podobne do tabeli w przypadku relacyjnych baz danych i mają bogaty zestaw optymalizacji.
- Ramki danych służą do wzmocnienia zapytań napisanych w języku SQL, a także interfejsu API ramki danych
- Może być wykorzystywany do przetwarzania zarówno danych strukturalnych, jak i nieustrukturyzowanych.
- Zastosowanie optymalizatora katalizatora sprawia, że optymalizacja jest łatwa i skuteczna.
- Biblioteki są obecne w wielu językach, takich jak Python, Scala, Java i R.
- Służy to do zapewnienia silnej zgodności z gałęzią i służy do uruchamiania niezmodyfikowanych zapytań dotyczących gałęzi w już istniejącym magazynie gałęzi.
- Można go bardzo dobrze skalować od kilku kilogramów w systemie osobistym do wielu petabajtów w dużych klastrach.
- Służy do zapewnienia łatwego poziomu integracji z innymi technologiami i strukturami dużych zbiorów danych.
- Abstrakcja, którą zapewniają RDD, jest wydajna i przyspiesza przetwarzanie.
Wniosek - Spark DataFrame
W tym poście nauczyłeś się bardzo krytycznej funkcji Apache Spark, jaką są ramki danych i ich użycie w aplikacjach działających dzisiaj wraz z operacjami i zaletami. Mam nadzieję, że podoba ci się nasz artykuł. Sprawdzaj więcej takich.
Polecane artykuły
To był przewodnik po Spark DataFrame. Tutaj omawiamy sposób utworzenia DataFrame? zalety i różne operacje DataFrames wraz z odpowiednim przykładowym kodem. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Spark Streaming
- Jak zainstalować Spark
- Kariera w Spark
- Pytania do wywiadu Spark
- Ramki danych w R.
- 7 różnych typów połączeń w Spark SQL (przykłady)
- PySpark SQL | Moduły i metody PySpark SQL
- Komponenty iskrowe | Przegląd komponentów Spark