1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Foundations of PySpark

Connected

Cvičení

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.

Pokyny

100 XP
  • Kód pro vytvoření pandas DataFrame s náhodnými čísly už je připravený a uložený pod názvem pd_temp.
  • Vytvoř Spark DataFrame s názvem spark_temp voláním Spark metody .createDataFrame() s argumentem pd_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_temp DataFrame 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.