1. Nauka
  2. /
  3. Kursy
  4. /
  5. Podstawy PySpark

Connected

ćwiczenie

Dodaj Sparka do swoich danych

W poprzednim ćwiczeniu zobaczyłeś(-aś), jak przenosić dane ze Sparka do pandas. A co, jeśli chcesz zrobić odwrotnie – umieścić pandas DataFrame w klastrze Spark? Klasa SparkSession ma do tego odpowiednią metodę.

Metoda .createDataFrame() przyjmuje pandas DataFrame i zwraca Spark DataFrame.

Wynik tej metody jest przechowywany lokalnie, a nie w katalogu SparkSession. Oznacza to, że możesz używać na nim wszystkich metod Spark DataFrame, ale nie możesz uzyskać dostępu do danych w innych kontekstach.

Na przykład zapytanie SQL (z użyciem metody .sql()), które odwołuje się do twojego DataFrame, spowoduje błąd. Aby uzyskać dostęp do danych w ten sposób, musisz zapisać go jako tabelę tymczasową.

Możesz to zrobić za pomocą metody .createTempView() na Spark DataFrame. Przyjmuje ona jako jedyny argument nazwę tabeli tymczasowej, którą chcesz zarejestrować. Metoda ta rejestruje DataFrame jako tabelę w katalogu, ale ponieważ jest ona tymczasowa, dostęp do niej możliwy jest tylko z poziomu konkretnej SparkSession, w której utworzono Spark DataFrame.

Istnieje również metoda .createOrReplaceTempView(). Bezpiecznie tworzy nową tabelę tymczasową, jeśli żadna jeszcze nie istnieje, lub aktualizuje istniejącą, jeśli była już zdefiniowana. Skorzystasz z tej metody, aby uniknąć problemów z duplikatami tabel.

Spójrz na diagram, który pokazuje, jak poszczególne struktury danych w Sparku współdziałają ze sobą.

W twoim środowisku pracy dostępna jest już SparkSession o nazwie spark, numpy zostało zaimportowane jako np, a pandas jako pd.

Instrukcje

100 XP
  • Kod tworzący pandas DataFrame z losowymi liczbami został już przygotowany i zapisany pod nazwą pd_temp.
  • Utwórz Spark DataFrame o nazwie spark_temp, wywołując metodę .createDataFrame() z argumentem pd_temp.
  • Sprawdź listę tabel w swoim klastrze Spark i upewnij się, że nowy DataFrame nie jest na niej widoczny. Możesz użyć do tego spark.catalog.listTables().
  • Zarejestruj DataFrame spark_temp, który właśnie utworzyłeś(-aś), jako tabelę tymczasową za pomocą metody .createOrReplaceTempView(). Tabela tymczasowa powinna mieć nazwę "temp". Pamiętaj, że nazwę tabeli podajesz jako jedyny argument metody!
  • Sprawdź listę tabel jeszcze raz.