Spark-fase met hoge I/O
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 clusterwerkkernen en deel daarna het resultaat 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 dure leesbewerking in de DAG-van Spark.
Nadat u de specifieke gegevens hebt geïdentificeerd, zijn hier enkele manieren om uw leesbewerkingen te versnellen:
- Gebruik Delta-.
- 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, overweeg dan om DFP werkend te krijgen.
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 het nog niet is ingeschakeld. Photon kan veel helpen met schrijfsnelheid.
Hoge willekeurige volgorde
Als je 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,.