| PYTHON NA STERYDACH – POLARS W ostatnim wydaniu pisałem o Pandas UDF w kontekście typów danych. Jeden z czytelników dał mi znać o ciekawej bibliotece z super szybkim Pytonem. 🐍 (tutaj powinien wrzucić ikonę Monty Python ale takiej nie ma więc wrzucam poniżej zdjęcie, jeśli lubisz angielski humor to się uśmiejesz, Polecam 😁)Jak piszą na Github: Polars: Blazingly fast DataFrames in Rust, Python, Node.js, R and SQLPolars to interfejs DataFrame na bazie OLAP Query Engine, zaimplementowany w języku Rust przy użyciu formatu kolumnowego Apache Arrow jako modelu pamięci. W obecnym projekcie mamy problem z osiągami Pandasów, pozdrawiam wszystkich ML-owców, którzy nie są w stanie wszystkiego zrobić na Sparku i muszą się posiłkować Pandasami. Może Polars pomoże. Dzięki za tip Bartosz Python Polars: A Lightning-Fast DataFrame Library Pandas vs Polars – Speed Comparison Polars: The Super Fast Dataframe Library for Python … bye bye Pandas |
| PARAMETRYZOWANY SQL Jeśli do tej pory używałeś f stringów w Pythonie żeby pisać dynamiczne zapytania, to jest coś co może upiększyć twój kod. Bardzo często trzeba zrobić coś dynamicznie na podstawie parametrów. Parametry te mogą pochodzić z procesu, poprzedzającego wywołanie np. notatnika bądź z konfiguracji. W takich scenariuszach ta funkcjonalność będzie jak znalazł.Jak to działaZapytanie SQL zawiera opcjonalną listę parametrów w postaci klucz/wartość.Apache Spark analizuje zapytanie SQL i zamienia odwołania do parametrów na odpowiadające im sparsowane węzły drzewa (tree nodes).Podczas analizy uruchamiana jest reguła Catalyst, która zamienia te odwołania na dostarczone wartości parametrów.Takie podejście chroni przed atakami SQL Injection, ponieważ obsługuje tylko wartości literalne.Przykład query = "SELECT item, sum(amount) from some_purchases group by item having item = :item" spark.sql( query, args={"item": "socks"}, ).show() Parameterized queries with PySpark Parameter markersUnnamed parameter markers |
