Spark-fase 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 deze vervolgens door de seconden van de duur. 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 Spark's DAG.
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.
- Bedenk de gegevensindeling zodat het overslaan van gegevens 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.
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 Hoe u kunt bepalen of Spark gegevens herschrijft om te controleren. Als u veel gegevens herschrijft:
- Kijk of u een samenvoeging hebt die moet worden geoptimaliseerd.
- 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.
Hoge willekeurige volgorde
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 Slow Spark-fase met weinig I/O.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor