Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Bekijk vervolgens opnieuw de I/O-statistieken van de langste fase:
Wat is hoge I/O?
Hoeveel gegevens moeten in een I/O-kolom staan om als hoog te worden beschouwd? Als u dit wilt weten, begint u eerst met het hoogste getal in een van de opgegeven kolommen. Houd vervolgens rekening met het totale aantal CPU-kernen dat u voor al onze werknemers hebt. Over het algemeen kan elke kern ongeveer 3 MB per seconde lezen en schrijven.
Deel uw grootste I/O-kolom door het aantal cores van de clusterwerkers, en deel dit vervolgens door de duur in seconden. Als het resultaat ongeveer 3 MB is, bent u waarschijnlijk I/O-gebonden. Dat zou een hoge I/O zijn.
Hoge invoer
Als u veel invoer in uw fase ziet, betekent dit dat u veel tijd besteedt aan het lezen van gegevens. Bepaal eerst welke gegevens deze fase leest. Zie Het identificeren van een kostbare leesbewerking in Spark's DAG.
Nadat u de specifieke gegevens hebt geïdentificeerd, zijn hier enkele manieren om uw leesbewerkingen te versnellen:
- Gebruik Delta-.
- Gebruik liquid clustering voor betere data skipping. Zie Liquid Clustering gebruiken voor tabellen.
- Probeer Photon. Het kan veel helpen met leessnelheid, met name voor brede tabellen.
- Maak uw query selectiever zodat deze niet zoveel gegevens hoeft te lezen.
- Herzie uw gegevensindeling zodat gegevensoverslaan effectiever is.
- Als u dezelfde gegevens meerdere keren leest, gebruikt u de Delta-cache.
- Als u een join uitvoert, kunt u overwegen om DFP te laten werken.
- Vergroot de grootte van uw cluster of gebruik serverloze berekeningen.
Hoge uitvoer
Als u veel uitvoer van uw fase ziet, betekent dit dat u veel tijd kwijt bent aan het schrijven van gegevens. Hier volgen enkele manieren om dit op te lossen:
- Herschrijft u veel gegevens? Zie Bepalen of Spark gegevens herschrijft om te controleren. Als u veel gegevens herschrijft:
- Kijk of u een samenvoeging hebt die geoptimaliseerd moet worden.
- Gebruik verwijderingsvectoren om bestaande rijen te markeren als verwijderd of gewijzigd zonder het Parquet-bestand opnieuw te schrijven.
- Schakel Photon in als dit nog niet is gebeurd. Photon kan veel helpen met schrijfsnelheid.
- Vergroot de grootte van uw cluster of gebruik serverloze berekeningen.
Intensief schudden
Databricks raadt aan om spark.sql.shuffle.partitions=auto in te stellen zodat Spark het aantal optimale shuffle-partities automatisch kan kiezen. Als u niet bekend bent met shuffle, is dit het moment om te leren.
Geen hoge I/O
Als u geen hoge I/O in een van de kolommen ziet, moet u dieper graven. Zie de Slow Spark-fase met weinig I/O,.