Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dále se znovu podívejte na vstupně-výstupní statistiky nejdelší fáze:
Dlouhá fáze
Co je vysoký I/O?
Kolik dat musí být ve sloupci V/V, aby se považovalo za vysoké? Pokud to chcete zjistit, začněte nejprve nejvyšším číslem v libovolném z daných sloupců. Pak zvažte celkový počet jader procesoru, které máte u všech našich pracovníků. Obecně platí, že každé jádro může číst a zapisovat přibližně 3 MB za sekundu.
Vydělte svůj největší V/V sloupec počtem pracovních jader clusteru, poté výsledek vydělte dobou trvání v sekundách. Pokud je výsledek kolem 3 MB, jste pravděpodobně omezeni vstupně-výstupními operacemi. To by byla vysoká vstupně-výstupní propustnost.
Vysoký vstup
Pokud do vaší fáze přichází velké množství vstupních dat, znamená to, že trávíte spoustu času jejich zpracováním. Nejprve určete, jaká data tato fáze čte. Viz Identifikace nákladného čtení v DAG Sparku.
Jakmile identifikujete konkrétní data, tady je několik přístupů k urychlení čtení:
- Použijte Delta.
- Pro lepší přeskakování dat používejte clustering liquid. Viz Použití metody 'liquid clustering' pro tabulky.
- Zkuste Photon. To může pomoci hodně s rychlostí čtení, zejména pro široké tabulky.
- Zpřístupněte dotaz selektivněji, aby nemusel číst tolik dat.
- Přehodnoťte rozložení dat, aby vynechání dat bylo efektivnější.
- Pokud čtete stejná data vícekrát, použijte mezipaměť Delta.
- Pokud se připojujete, zvažte pokus o zprovoznění DFP.
- Zvětšete velikost clusteru nebo používejtebezserverové výpočetní prostředky.
Vysoký výkon
Pokud uvidíte hodně výstupu ze své fáze, znamená to, že věnujete hodně času zápisu dat. Tady je několik přístupů k řešení tohoto:
- Přepisujete velké množství dat? Přečtěte si Jak zjistit, jestli Spark přepisuje data ke kontrole. Pokud přepisujete velké množství dat:
- Zjistěte, jestli máte sloučení , které potřebuje optimalizaci.
- Pomocí vektorů odstranění označte existující řádky jako odebrané nebo změněné bez přepsání souboru Parquet.
- Povolte Photon , pokud ještě není. Photon může hodně pomoci s rychlostí zápisu.
- Zvětšete velikost clusteru nebo používejtebezserverové výpočetní prostředky.
Vysoké míchání
Databricks doporučuje nastavit spark.sql.shuffle.partitions=auto , aby Spark vybral automaticky počet optimálních oddílů náhodného prohazování. Pokud nejste obeznámeni se zamícháním, je čas se naučit.
Žádné vysoké I/O
Pokud v žádném ze sloupců nevidíte vysoké vstupně-výstupní operace, musíte se podívat hlouběji. Vizte fázi Slow Spark s malými vstupně-výstupními operacemi.