🚀 Bist Du bereit für eine Karriere im Bereich Data? Finde es in nur 60 Sekunden heraus!

Alles, was du über Python Fugue wissen musst

-
3
 Minuten Lesezeit
-
https://datascientest.com/?p=234105&preview=true

Die kontinuierliche Weiterentwicklung der Datenverarbeitungstechnologien hat zur Entstehung innovativer Lösungen geführt, die die Komplexität, die mit der Verwaltung und Analyse großer Datensätze einhergeht, vereinfachen sollen. Unter diesen Innovationen zeichnet sich Python Fugue als leistungsstarke Bibliothek aus, die es Datenwissenschaftlern und Ingenieuren ermöglicht, Anwendungen für verteiltes Rechnen intuitiver und effizienter zu entwickeln.

Der Hauptansatz von Python Fugue ist es, einmal geschriebenen Code zu fördern, der überall ohne Änderungen ausgeführt werden kann, unabhängig von der gewählten Plattform für verteiltes Rechnen.

Dies wird durch seine API ermöglicht, die die Besonderheiten jeder Ausführungsmaschine abstrahiert und so den Nutzern eine beispiellose Flexibilität und Portabilität ihrer Anwendungen ermöglicht.

Durch den Einsatz von Fugue können Entwickler Pandas-Skripte leicht in groß angelegte verteilte Aufgaben umwandeln und so die Leistung und Effizienz optimieren, ohne dass sie tiefgehendes Fachwissen über die verschiedenen Systeme für verteiltes Rechnen benötigen.

Eigenschaften von Fugue

Die Einführung von Python Fugue im Bereich der Datenverarbeitung stellt aufgrund seiner einzigartigen Merkmale einen bedeutenden Wendepunkt dar. In der folgenden Tabelle sind die wichtigsten Merkmale von Fugue im Detail aufgeführt.

Abstraktion ohne Server

Fugue ermöglicht es, Anwendungen für verteiltes Rechnen zu schreiben, ohne sich um den Server oder die zugrunde liegende Laufzeitumgebung kümmern zu müssen. Das bedeutet, dass der für Fugue geschriebene Code auf verschiedenen Engines wie Spark, Dask oder lokal unverändert ausgeführt werden kann.

Intuitive Schnittstelle

Seine Benutzeroberfläche ist so gestaltet, dass sie für Benutzer von Pandas und Spark intuitiv zu bedienen ist und einen reibungslosen Übergang zum verteilten Rechnen ermöglicht, ohne dass eine steile Lernkurve erforderlich ist.

Unterstützung für mehrere Runtime-Engines

Fugue ist mit einer Vielzahl von Laufzeitmaschinen kompatibel und bietet den Nutzern die Flexibilität, die Umgebung zu wählen, die ihren spezifischen Bedürfnissen am besten entspricht, sei es in Bezug auf Leistung, Kosten oder andere Kriterien.

Unabhängigkeit der Sprache

Obwohl Fugue in Python entwickelt wurde, ermöglicht es die Integration von Funktionen, die in anderen Sprachen wie SQL geschrieben wurden, und erhöht so die Vielseitigkeit und Leistungsfähigkeit der entwickelten Anwendungen.

Erweitern und Anpassen

Fugue stellt eine Reihe von Erweiterungen und Plug-ins zur Verfügung, mit denen die Nutzer die Funktionen anpassen und erweitern können.

Optimierung der Leistung

Durch seine Fähigkeit, Details auf niedriger Ebene zu abstrahieren, optimiert Fugue automatisch Aufgaben für die gewählte Ausführungsmaschine und verbessert so die Leistung ohne zusätzlichen Aufwand für den Entwickler.

Einfache Migration

Die Migration von bestehenden Datenverarbeitungsskripten in eine verteilte Rechenumgebung wird erleichtert, was den Zeit- und Ressourcenaufwand für die Anpassung von Anwendungen in großem Maßstab deutlich verringert.

Beispiel für die Verwendung von Fugue

Lasst uns ein praktisches Beispiel behandeln, das die Verwendung von Fugue zum Aufbau und Einsatz eines einfachen Machine-Learning-Modells auf verschiedenen Laufzeitmaschinen illustriert. Dieses Beispiel zeigt die Vielseitigkeit von Fugue, indem es den Nutzern ermöglicht, denselben ML-Code ohne wesentliche Änderungen auf lokalen, Spark- oder Dask-Umgebungen auszuführen.

1. Erstellung eines fiktiven Datasets

Beginnen wir mit der Erstellung eines einfachen Pandas DataFrame, um einen Datensatz mit Wohnungspreisen zu simulieren, mit Merkmalen wie der Größe der Wohnung (in Quadratmetern), der Entfernung zum Stadtzentrum (in Kilometern) und dem Preis der Wohnung.

				
					import pandas as pd

# Création d'un DataFrame d'exemple
data = {
    "size": [50, 60, 70, 80, 90],
    "distance": [5, 3, 2, 8, 7],
    "price": [250000, 270000, 290000, 200000, 230000]
}

df = pd.DataFrame(data)
				
			

2. Vorbereitung der Daten und Training des Modells

Definiere nun eine Funktion, die den DataFrame als Eingabe nimmt, die Daten für das Training vorbereitet, ein einfaches lineares Regressionsmodell trainiert und die Koeffizienten des Modells zurückgibt.

				
					from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

def train_model(df: pd.DataFrame) -> pd.DataFrame:
    X = df[["size", "distance"]]
    y = df["price"]
    
    # Division des données en ensemble d'entraînement et de test
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # Entraînement du modèle de régression linéaire
    model = LinearRegression()
    model.fit(X_train, y_train)
    
    # On retourne les coefficients du modèle
    return pd.DataFrame({
        "coef": ["intercept", "size", "distance"],
        "value": [model.intercept_, *modele.coef_]
    })

				
			

3. Ausführung auf verschiedenen Motoren mit Fugue

Mit Python Fugue werden wir nun die Modelltrainingsfunktion auf verschiedenen Laufzeitmaschinen ausführen, ohne den Code zu ändern.

				
					from fugue import FugueWorkflow

# Exécution sur Spark
# Il est possible d’indiquer un autre moteur d’exécution comme Dask ou Ray.
# S’il n’est pas indiqué, l’exécution se fera en local
with FugueWorkflow(engine=”spark”) as dag:
    df_initial = dag.df(df)
    results = df_initial.transform(train_model)
    results.show()
				
			

Dieses Beispiel zeigt, wie Fugue den Prozess des Aufbaus und Einsatzes von Machine-Learning-Modellen auf verschiedenen Rechenumgebungen vereinfacht.

Fazit

Python Fugue erweist sich als leistungsstarkes und vielseitiges Werkzeug für die Manipulation und Analyse großer Datenmengen sowie für die Entwicklung und den Einsatz von Machine-Learning-Modellen.

Dank seiner Fähigkeit, die Komplexität der verschiedenen Ausführungsmaschinen zu abstrahieren, ermöglicht es Data Scientists und Entwicklern, sich voll und ganz auf die Lösung von Geschäftsproblemen zu konzentrieren, ohne sich von den technischen Details der zugrunde liegenden Infrastruktur behindern zu lassen.

Fugue positioniert sich also nicht nur als technischer Ermöglicher, sondern auch als Katalysator für Innovationen, indem es Möglichkeiten eröffnet, die zuvor aufgrund der technischen Komplexität nicht zugänglich waren. Indem Fugue verteiltes Rechnen zugänglich und verwaltbar macht, fördert es Experimente, Zusammenarbeit und Effizienz bei der Entwicklung von Datenlösungen.

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.