Přidej Spark do svých dat
V předchozím cvičení jsi viděl/a, jak přesunout data ze Sparku do pandas. Ale co opačný směr – dostat pandas DataFrame do Spark clusteru? Na to má třída SparkSession také svou metodu.
Metoda .createDataFrame() přijme pandas DataFrame a vrátí Spark DataFrame.
Výstup této metody se uloží lokálně, nikoli do katalogu SparkSession. Znamená to, že na něm můžeš používat všechny metody Spark DataFrame, ale v jiných kontextech k těmto datům přistupovat nelze.
Například SQL dotaz (přes metodu .sql()), který odkazuje na tento DataFrame, vyvolá chybu. Aby byl přístup možný, musíš data uložit jako dočasnou tabulku.
K tomu slouží metoda .createTempView() Spark DataFrame, která jako jediný argument přijme název dočasné tabulky, kterou chceš zaregistrovat. Metoda zaregistruje DataFrame jako tabulku v katalogu, ale protože je dočasná, je dostupná pouze z konkrétní SparkSession, ve které byl Spark DataFrame vytvořen.
Existuje také metoda .createOrReplaceTempView(). Ta bezpečně vytvoří novou dočasnou tabulku, pokud žádná ještě neexistuje, nebo aktualizuje stávající, pokud už je definovaná. Tuto metodu použiješ, aby nedocházelo k problémům s duplicitními tabulkami.
Podívej se na diagram – ukazuje všechny různé způsoby, jakými spolu datové struktury Sparku interagují.

V tvém pracovním prostředí je už k dispozici SparkSession s názvem spark, numpy je importován jako np a pandas jako pd.
Toto cvičení je součástí kurzu
Foundations of PySpark
Pokyny k cvičení
- Kód pro vytvoření
pandasDataFrame s náhodnými čísly už je připravený a uložený pod názvempd_temp. - Vytvoř Spark DataFrame s názvem
spark_tempvoláním Spark metody.createDataFrame()s argumentempd_temp. - Prohlédni si seznam tabulek ve svém Spark clusteru a ověř, že nový DataFrame není přítomen. K tomu použij
spark.catalog.listTables(). - Zaregistruj právě vytvořený
spark_tempDataFrame jako dočasnou tabulku pomocí metody.createOrReplaceTempView(). Dočasná tabulka by se měla jmenovat"temp". Nezapomeň, že název tabulky se nastavuje jako jediný argument této metody! - Znovu si prohlédni seznam tabulek.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____)