pyarrow (Jak to działa dla programistów)
PyArrow to potężna biblioteka zapewniająca interfejs Python do frameworka Apache Arrow. Apache Arrow to wielojęzyczna platforma programistyczna do obsługi danych w pamięci. Określa on standardowy, niezależny od języka format pamięci kolumnowej dla danych płaskich i hierarchicznych, zorganizowany pod kątem wydajnych operacji analitycznych na nowoczesnym sprzęcie. PyArrow to w zasadzie biblioteka Apache Arrow Python Bindings zrealizowana jako pakiet Python. PyArrow umożliwia wydajną wymianę danych i interoperacyjność między różnymi systemami przetwarzania danych i językami programowania. W dalszej części tego artykułu dowiemy się również o IronPDF, bibliotece do generowania plików PDF opracowanej przez Iron Software.
Najważniejsze cechy PyArrow
Format pamięci kolumnowej:
PyArrow wykorzystuje kolumnowy format pamięci, który jest bardzo wydajny w przypadku operacji analitycznych wykonywanych w pamięci. Format ten pozwala na lepsze wykorzystanie pamięci podręcznej procesora i operacje wektorowe, co czyni go idealnym do zadań związanych z przetwarzaniem danych. PyArrow może efektywnie odczytywać i zapisywać dane w strukturach plików Parquet dzięki swojej kolumnowej naturze.
- Interoperacyjność: Jedną z głównych zalet PyArrow jest jego zdolność do ułatwiania wymiany danych między różnymi językami programowania i systemami bez konieczności serializacji lub deserializacji. Jest to szczególnie przydatne w środowiskach, w których używa się wielu języków, takich jak nauka o danych i uczenie maszynowe.
- Integracja z Pandas: PyArrow może służyć jako zaplecze dla Pandas, umożliwiając wydajną manipulację danymi i ich przechowywanie. Począwszy od wersji Pandas 2.0, możliwe jest przechowywanie danych w tablicach Arrow zamiast tablic NumPy, co może prowadzić do poprawy wydajności, zwłaszcza w przypadku danych typu string.
- Obsługa różnych typów danych: PyArrow obsługuje szeroki zakres typów danych, w tym typy pierwotne (liczby całkowite, liczby zmiennoprzecinkowe), typy złożone (struktury, listy) oraz typy zagnieżdżone. Dzięki temu jest wszechstronny w obsłudze różnych rodzajów danych.
- Odczyty bez kopiowania: PyArrow umożliwia odczyty bez kopiowania, co oznacza, że dane mogą być odczytywane z formatu pamięci Arrow bez ich kopiowania. Zmniejsza to obciążenie pamięci i zwiększa wydajność.
Instalacja
Aby zainstalować PyArrow, można użyć pip lub conda:
pip install pyarrowpip install pyarrowor
conda install pyarrow -c conda-forgeconda install pyarrow -c conda-forgePodstawowe zastosowanie
Jako edytor kodu używamy Visual Studio Code. Rozpocznij od utworzenia nowego pliku, pyarrowDemo.py.
Oto prosty przykład wykorzystania PyArrow do utworzenia tabeli i wykonania kilku podstawowych operacji:
import pyarrow as pa
import pyarrow.dataset as pt
# Create a PyArrow table
data = [
pa.array([1, 2, 3]),
pa.array(['a', 'b', 'c']),
pa.array([1.1, 2.2, 3.3])
]
table = pa.Table.from_arrays(data, names=['col1', 'col2', 'col3'])
# Display the table
print(table)import pyarrow as pa
import pyarrow.dataset as pt
# Create a PyArrow table
data = [
pa.array([1, 2, 3]),
pa.array(['a', 'b', 'c']),
pa.array([1.1, 2.2, 3.3])
]
table = pa.Table.from_arrays(data, names=['col1', 'col2', 'col3'])
# Display the table
print(table)Wyjaśnienie kodu
Kod Python wykorzystuje PyArrow do stworzenia tabeli (pa.Table) z trzech tablic (pa.array). Następnie drukuje tabelę, wyświetlając kolumny o nazwach "col1", "col2" i "col3", z których każda zawiera odpowiednie dane typu integer, string i float.
WYNIK

Integracja z Pandas
PyArrow można płynnie zintegrować z Pandas w celu zwiększenia wydajności, zwłaszcza podczas pracy z dużymi zbiorami danych. Oto przykład konwersji ramki danych Pandas na tabelę PyArrow:
import pandas as pd
import pyarrow as pa
# Create a Pandas DataFrame
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['a', 'b', 'c'],
'col3': [1.1, 2.2, 3.3]
})
# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)
# Display the table
print(table)import pandas as pd
import pyarrow as pa
# Create a Pandas DataFrame
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['a', 'b', 'c'],
'col3': [1.1, 2.2, 3.3]
})
# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)
# Display the table
print(table)Wyjaśnienie kodu
Kod Python konwertuje Pandas DataFrame do tabeli PyArrow (pa.Table), a następnie drukuje tabelę. DataFrame składa się z trzech kolumn (col1, col2, col3) z danymi typu integer, string i float.
WYNIK

Zaawansowane funkcje
1. Formaty plików
PyArrow obsługuje odczyt i zapis różnych formatów plików, takich jak Parquet i Feather. Formaty te są zoptymalizowane pod kątem wydajności i są szeroko stosowane w potokach przetwarzania danych.
2. Mapowanie pamięci
PyArrow obsługuje dostęp do plików mapowanych w pamięci, co pozwala na wydajny odczyt i zapis dużych zbiorów danych bez konieczności ładowania całego zbioru do pamięci.
3. Komunikacja międzyprocesowa
PyArrow zapewnia narzędzia do komunikacji międzyprocesowej, umożliwiające wydajną wymianę danych między różnymi procesami.
Przedstawiamy IronPDF

IronPDF to biblioteka dla języka Python, która ułatwia pracę z plikami PDF, umożliwiając wykonywanie zadań takich jak tworzenie, edycja i manipulowanie dokumentami PDF za pomocą kodu. Oferuje takie funkcje, jak generowanie plików PDF z HTML, dodawanie tekstu, obrazów i kształtów do istniejących plików PDF, a także wyodrębnianie tekstu i obrazów z plików PDF. Oto niektóre z kluczowych funkcji:
Generowanie plików PDF z HTML
IronPDF może z łatwością konwertować pliki HTML, ciągi znaków HTML i adresy URL na dokumenty PDF. Wykorzystaj renderer PDF przeglądarki Chrome, aby renderować strony internetowe bezpośrednio do formatu PDF.
Kompatybilność międzyplatformowa
IronPDF jest kompatybilny z Python 3+ i działa płynnie na platformach Windows, Mac, Linux oraz w chmurze. Jest również obsługiwany w .NET, Java, Python i Node.js.
Możliwości edycji i podpisywania
Ulepszaj dokumenty PDF, ustawiając właściwości, dodając zabezpieczenia, takie jak hasła i uprawnienia, oraz stosując podpisy cyfrowe.
Niestandardowe szablony stron i ustawienia
Dzięki IronPDF możesz dostosować pliki PDF, dodając nagłówki, stopki, numery stron i regulując marginesy. Obsługuje responsywne układy i umożliwia ustawianie niestandardowych rozmiarów papieru.
Zgodność z normami
IronPDF jest zgodny ze standardami PDF, w tym PDF/A i PDF/UA. Obsługuje kodowanie znaków UTF-8 i płynnie radzi sobie z zasobami, takimi jak obrazy, style CSS i czcionki.
Generowanie dokumentów PDF przy użyciu IronPDF i PyArrow
Wymagania wstępne IronPDF
- IronPDF wykorzystuje .NET 6.0 jako technologię bazową. W związku z tym w systemie musi być zainstalowane środowisko uruchomieniowe .NET 6.0.
- Python 3.0+: Musisz mieć zainstalowaną wersję Pythona 3 lub nowszą.
- pip: Zainstaluj instalator pakietów Python pip w celu zainstalowania pakietu IronPDF.
Zainstaluj niezbędne biblioteki:
pip install pyarrow ironpdf
Następnie dodaj poniższy kod, aby zademonstrować użycie pakietów IronPDF i PyArrow dla języka Python:
import pandas as pd
import pyarrow as pa
from ironpdf import *
# Apply your license key
License.LicenseKey = "license"
# Create a Pandas DataFrame
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['a', 'b', 'c'],
'col3': [1.1, 2.2, 3.3]
})
# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)
# Display the table
print(table)
#create a PDF renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with pyarrow</h1>"
content += "<p>table data</p>"
# Iterate over table rows
for row in table:
# Access specific values in a row
value_in_column1 = row[0]
value_in_column2 = row[1]
value_in_column3 = row[2]
# Append row data to content
content += "<p>"+str(value_in_column1)+","+str(value_in_column2)+","+str(value_in_column3)+"</p>"
# Render the HTML content to a PDF
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or stream
pdf.SaveAs("DemoPyarrow.pdf")import pandas as pd
import pyarrow as pa
from ironpdf import *
# Apply your license key
License.LicenseKey = "license"
# Create a Pandas DataFrame
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': ['a', 'b', 'c'],
'col3': [1.1, 2.2, 3.3]
})
# Convert the DataFrame to a PyArrow Table
table = pa.Table.from_pandas(df)
# Display the table
print(table)
#create a PDF renderer
renderer = ChromePdfRenderer()
# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with pyarrow</h1>"
content += "<p>table data</p>"
# Iterate over table rows
for row in table:
# Access specific values in a row
value_in_column1 = row[0]
value_in_column2 = row[1]
value_in_column3 = row[2]
# Append row data to content
content += "<p>"+str(value_in_column1)+","+str(value_in_column2)+","+str(value_in_column3)+"</p>"
# Render the HTML content to a PDF
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or stream
pdf.SaveAs("DemoPyarrow.pdf")Wyjaśnienie kodu
Skrypt pokazuje integrację bibliotek Pandas, PyArrow i IronPDF w celu utworzenia dokumentu PDF na podstawie danych przechowywanych w ramce danych Pandas:
Tworzenie DataFrame Pandas:
- Utwórz Pandas DataFrame (
df) z trzema kolumnami (col1,col2,col3) zawierającymi dane numeryczne i string.
- Utwórz Pandas DataFrame (
Konwersja do tabeli PyArrow:
- Konwertuje Pandas DataFrame (
df) na tabelę PyArrow (table) przy użyciu metodypa.Table.from_pandas(). Konwersja ta ułatwia wydajną obsługę danych i interoperacyjność z aplikacjami opartymi na Arrow.
- Konwertuje Pandas DataFrame (
Generowanie plików PDF za pomocą IronPDF:
- Wykorzystuje ChromePdfRenderer z IronPDF i wywołuje jego metodę RenderHtmlAsPdf, aby wygenerować dokument PDF (
DemoPyarrow.pdf) z ciągu HTML (content), który zawiera nagłówki i dane wyodrębnione z tabeli PyArrow (table).
- Wykorzystuje ChromePdfRenderer z IronPDF i wywołuje jego metodę RenderHtmlAsPdf, aby wygenerować dokument PDF (
WYNIK

WYJŚCIE PDF

Licencja IronPDF
Umieść klucz licencyjny na początku skryptu przed użyciem pakietu IronPDF:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"from ironpdf import *
# Apply your license key
License.LicenseKey = "key"Wnioski
PyArrow to wszechstronna i potężna biblioteka, która rozszerza możliwości języka Python w zakresie przetwarzania danych. Jego wydajny format pamięci, funkcje interoperacyjności oraz integracja z Pandas sprawiają, że jest to niezbędne narzędzie dla analityków danych i inżynierów. Niezależnie od tego, czy pracujesz z dużymi zbiorami danych, wykonujesz złożone operacje na danych, czy budujesz potoki przetwarzania danych, PyArrow oferuje wydajność i elastyczność niezbędną do skutecznego wykonywania tych zadań. Z drugiej strony IronPDF to solidna biblioteka Python, która upraszcza tworzenie, edycję i renderowanie dokumentów PDF bezpośrednio z poziomu aplikacji Python. Integruje się płynnie z istniejącymi frameworkami Python, umożliwiając programistom dynamiczne generowanie i dostosowywanie plików PDF. W połączeniu z pakietami PyArrow i IronPDF dla języka Python użytkownicy mogą z łatwością przetwarzać struktury danych i archiwizować je.
IronPDF zapewnia również obszerną dokumentację, która pomaga programistom w rozpoczęciu pracy, wraz z licznymi przykładami kodu, które pokazują jego potężne możliwości. Więcej szczegółów można znaleźć na stronach z dokumentacją i przykładami kodu.










