| JSONMuszę przyznać, że json to mój ulubiony plik. Jeszcze się na nim nie zawiodłem. Aż tu trafiłem na taki artykuł gdzie autor krytykuje jsona. 😮No i bardzo dobrze bo konstruktywna krytyka jest ważna podkreśla słabe strony. Słowo klucz to kontekst jest bardzo ważny, ja json używam głównie do trzymania konfiguracji i do tego sprawdza się świetnie. Ale jeśli zmienimy kontekst na json i dane prezycyjne to rzeczywiście może już nie być tak różowo. Polecam sprawdzić, żeby wiedzieć na co uważać używając jsona❗❗❗ Nobody Gets Fired for Picking JSON, but Maybe They Should? |
| DATAFRAME PORÓWNANIEPewnie coraz więcej słyszysz o nowych narzędziach takich jak DaskDuckDBPolarsPojawia się pytanie czy nowe oznacza dobre?, w sumie czy najnowsze to najlepsze?Jedną analogią mogą być książki, jak to bywa z książkami najnowsze nie oznacza najlepsze, tutaj skupiał bym się na czym ponadczasowym. Coś co trzyma wartość pomimo przemijających dekad. Są narzędzia, które istnieją od lat i dowiodły swoją użyteczność, jeśli popularność utrzymuje się na podobny poziomie to by oznaczyło = wartościowe wiem będą odstępstwa od reguły, ja skupiam się na regule.Nowości trzeba znać, ale zanim je „zainstalujemy” na produkcji wymagana jest kwarantanna technologiczna. 👨⚕️Najlepsze narzędzia przetrwają próbę czasu, a słabe wypadną z gry. Cały czas koncentruje się na Sparku, wielcy gracze jak Azure czy AWS ciągle go mają. Jak pojawią się jako nowe usługi to wtedy będzie potwierdzenie, że są warte uwagi. Poniżej link do artykułu gdzie możesz zobaczyć różnice pomiędzy nimi. Dask vs. SparkPolars vs. DuckDBPolars vs. pandas and DaskDask vs DuckDB DataFrames at Scale Comparison |
| SPARK PARTYCJEOptymalna wielkość partycji Shuffle w Apache Spark…Internety podają, że powinno być od 128 do 200 MB Wartość domyślna to 200 parycji – w większości przypadków będzie źle 🚫 Celujemy w <= 2️⃣0️⃣0️⃣ per partycja Jak policzyć Ilość partycji: Dane wejściowe (Input data) / Wielkość docelowa (target size) Przykład Shuffle Stage Input 200GB 200000MB / 200MB = 1000 spark.conf.set(„spark.sql.shuffle.partitions”,1000) jeśli już masz 1500 rdzeni to je wykorzystaj spark.conf.set(„spark.sql.shuffle.partitions”,1500) Z rdzeniami jest trochę jak z piłkarzami na ławce dobrze mieć kogoś kto ma wolne ręce i może pomóc w trudnej chwili. W przeciwnym razie proces będzie czekał aż się zwolnią zasoby i to trochę opóźni. Jeśli chodzi o coalesce i repartition to warto doczytać trochę szczegółów bo są wyjątki od reguł i warto je znać. Poniżej link do wartościowej wiedzy i kilku rzeczach do zapamiętania podczas zabawy z partycjami. 5 Hidden Apache Spark Facts That Fewer People Talk About Uncovering the Truth About Apache Spark Performance: coalesce(1) vs. repartition(1) |
| ŻYCIOWE PORADY – CHECKLISTAPostanowiłem wrzucić taką małą życiową obserwację.Ktoś mi poradził, a konkretnie Przemysław Gerschmann, ma bardzo ciekawego bloga, ale to nie branża IT. Nie miej jednak jest zwolennikiem prowadzenia dziennika. Jedną z odmian jest dziennik porażek. Kiedy coś nie pójdzie po twojej myśli czyli zrobisz jakiegoś babola to warto dodać go do listy porażek. I opisać co dokładnie się zadziało. W sumie jest to zgodne z teorią zarządzania – nie możesz zarządzać czymś czego nie mierzysz. A skoro nie mierzysz błędów to mogą się pojawić ponownie 😒Zbieram dane i mogę analizować przyczyny. Analizując swoje ostatnie błędy wyszło mi, że za każdym razem gdy coś popsułem to dlatego że czegoś nie zrobiłem, zabrakło jakieś akcji czasami jednego małego elementu. Jak to rozwiązać. Zacząć stosować checklisty, nie polegam na swojej głowie ale na notatniku – taki memory swap 😁 Takie listy używają piloci na całym świecie, i to działa ❗Zacząłem coś takiego robić przed releasem już na poziomie developmentu, listę wszystkich akcji które muszą się wydarzyć. Mam nadzieję że ten system trochę poprawi moją wydajność i zmniejszę ilość porażek. Lessons We Can Learn From Aviation Checklists |
