Adaugă Spark în datele tale
În exercițiul anterior, ai văzut cum să muți date din Spark în pandas. Dar poate vrei să faci invers și să introduci un DataFrame pandas într-un cluster Spark! Clasa SparkSession are și o metodă pentru asta.
Metoda .createDataFrame() primește un DataFrame pandas și returnează un DataFrame Spark.
Rezultatul acestei metode este stocat local, nu în catalogul SparkSession. Asta înseamnă că poți folosi toate metodele unui DataFrame Spark pe el, dar nu poți accesa datele în alte contexte.
De exemplu, o interogare SQL (folosind metoda .sql()) care face referire la DataFrame-ul tău va genera o eroare. Pentru a accesa datele în acest mod, trebuie să le salvezi ca tabel temporar.
Poți face asta folosind metoda .createTempView() a DataFrame-ului Spark, care primește ca unic argument numele tabelului temporar pe care vrei să îl înregistrezi. Această metodă înregistrează DataFrame-ul ca tabel în catalog, dar, deoarece tabelul este temporar, poate fi accesat doar din SparkSession-ul specific folosit pentru a crea DataFrame-ul Spark.
Există și metoda .createOrReplaceTempView(). Aceasta creează în siguranță un tabel temporar nou dacă nu există nimic înainte, sau actualizează un tabel existent dacă acesta a fost deja definit. Vei folosi această metodă pentru a evita problemele legate de tabele duplicate.
Uită-te la diagramă pentru a vedea toate modurile în care structurile de date Spark interacționează între ele.

În spațiul tău de lucru există deja o SparkSession numită spark, numpy a fost importat ca np, iar pandas ca pd.
Acest exercițiu face parte din cursul
Fundamente PySpark
Instrucțiuni pentru exercițiu
- Codul pentru crearea unui DataFrame
pandascu numere aleatoare a fost deja furnizat și salvat sub numelepd_temp. - Creează un DataFrame Spark numit
spark_tempapelând metoda Spark.createDataFrame()cupd_tempca argument. - Examinează lista de tabele din clusterul tău Spark și verifică că noul DataFrame nu este prezent. Reține că poți folosi
spark.catalog.listTables()pentru asta. - Înregistrează DataFrame-ul
spark_temppe care tocmai l-ai creat ca tabel temporar folosind metoda.createOrReplaceTempView(). Tabelul temporar ar trebui să se numească"temp". Reține că numele tabelului se setează incluzându-l ca unic argument al metodei! - Examinează din nou lista de tabele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Create pd_temp
pd_temp = pd.DataFrame(np.random.random(10))
# Create spark_temp from pd_temp
spark_temp = ____
# Examine the tables in the catalog
print(____)
# Add spark_temp to the catalog
spark_temp.____
# Examine the tables in the catalog again
print(____)